adding data seeding

Just run "docker-compose -f docker-compose.seed.yml up" to seed (you need to "docker-compose up -d" first)
This commit is contained in:
Bret Fisher
2021-01-29 17:38:20 -05:00
parent d1920ed44a
commit a33c638b2f
4 changed files with 44 additions and 0 deletions

9
docker-compose.seed.yml Normal file
View File

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

16
seed-data/Dockerfile Normal file
View File

@@ -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
seed-data/generate-votes.sh Executable file
View File

@@ -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
seed-data/make-data.py Normal file
View File

@@ -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()