Jelajahi Sumber

adding data seeding

Just run "docker-compose -f docker-compose.seed.yml up" to seed (you need to "docker-compose up -d" first)
Bret Fisher 4 tahun lalu
induk
melakukan
a33c638b2f
4 mengubah file dengan 44 tambahan dan 0 penghapusan
  1. 9 0
      docker-compose.seed.yml
  2. 16 0
      seed-data/Dockerfile
  3. 6 0
      seed-data/generate-votes.sh
  4. 13 0
      seed-data/make-data.py

+ 9 - 0
docker-compose.seed.yml

@@ -0,0 +1,9 @@
+services:
+  seed:
+    build: ./seed-data
+    networks:
+      - front-tier
+    restart: "no"
+
+networks:
+  front-tier:

+ 16 - 0
seed-data/Dockerfile

@@ -0,0 +1,16 @@
+FROM python:3.9-slim
+
+# add apache bench (ab) tool
+RUN apt-get update \
+    && apt-get install -y --no-install-recommends \
+    apache2-utils \
+    && rm -rf /var/lib/apt/lists/*
+
+WORKDIR /seed
+
+COPY . .
+
+# create POST data files with ab friendly formats
+RUN python make-data.py
+
+CMD /seed/generate-votes.sh

+ 6 - 0
seed-data/generate-votes.sh

@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# create 3000 votes (2000 for option a, 1000 for option b)
+ab -n 1000 -c 50 -p posta -T "application/x-www-form-urlencoded" http://vote/
+ab -n 1000 -c 50 -p postb -T "application/x-www-form-urlencoded" http://vote/
+ab -n 1000 -c 50 -p posta -T "application/x-www-form-urlencoded" http://vote/

+ 13 - 0
seed-data/make-data.py

@@ -0,0 +1,13 @@
+# this creates urlencode-friendly files without EOL
+import urllib.parse
+
+outfile = open('postb', 'w')
+params = ({ 'vote': 'b' })
+encoded = urllib.parse.urlencode(params)
+outfile.write(encoded)
+outfile.close()
+outfile = open('posta', 'w')
+params = ({ 'vote': 'a' })
+encoded = urllib.parse.urlencode(params)
+outfile.write(encoded)
+outfile.close()