Skip to content

Commit

Permalink
adding data seeding
Browse files Browse the repository at this point in the history
Just run "docker-compose -f docker-compose.seed.yml up" to seed (you need to "docker-compose up -d" first)
  • Loading branch information
BretFisher committed Jan 29, 2021
1 parent d1920ed commit a33c638
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 0 deletions.
9 changes: 9 additions & 0 deletions docker-compose.seed.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
services:
seed:
build: ./seed-data
networks:
- front-tier
restart: "no"

networks:
front-tier:
16 changes: 16 additions & 0 deletions seed-data/Dockerfile
Original file line number Diff line number Diff line change
@@ -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 changes: 6 additions & 0 deletions seed-data/generate-votes.sh
Original file line number Diff line number Diff line change
@@ -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 changes: 13 additions & 0 deletions seed-data/make-data.py
Original file line number Diff line number Diff line change
@@ -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()

0 comments on commit a33c638

Please sign in to comment.