Last active
April 10, 2016 19:38
-
-
Save mj41/773f4eea892c9f3ebe6b0da8dae380ff to your computer and use it in GitHub Desktop.
Postgres inside Docker Xtimes benchmark
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Pull Docker image | |
# docker pull postgres | |
# For more info see | |
# https://hub.docker.com/_/postgres/ | |
# cleanup | |
# docker rm --volumes -f pg-server-1 pg-server-2 pg-server-3 pg-server-4 pg-server-5 pg-server-6 pg-server-7 pg-server-8 pg-client-1 pg-client-2 pg-client-3 pg-client-4 pg-client-5 pg-client-6 pg-client-7 pg-client-8; docker ps -a | |
set +x | |
set -e | |
NUM=$1 | |
docker ps -a | |
for cnum in $(seq 1 1 $NUM); do | |
echo "Starting server $cnum" | |
docker run --name pg-server-$cnum -e POSTGRES_PASSWORD=mysecretp -d postgres & | |
done | |
for cnum in $(seq 1 1 $NUM); do | |
echo "pg_isready $cnum" | |
set +e | |
while true; do | |
docker run --name pg-client-$cnum -it --link pg-server-$cnum:pgsrv -e PGPASSWORD=mysecretp --rm postgres sh -c "exec pg_isready -t 30 -h pgsrv -p 5432 -U postgres" | |
ERRN="$?" | |
[ "$ERRN" == 0 ] && break; | |
echo "pg_isready error code $ERRN" | |
done; | |
set -e | |
done | |
echo "Ready servers" | |
docker ps -a | |
for cnum in $(seq 1 1 $NUM); do | |
echo "psql $cnum inside docker" | |
docker run --name pg-client-$cnum -it --link pg-server-$cnum:pgsrv -e PGPASSWORD=mysecretp --rm postgres sh -c "exec psql -h pgsrv -p 5432 -U postgres -e\l\q" & | |
done | |
TO_RM="" | |
for cnum in $(seq 1 1 $NUM); do | |
TO_RM="$TO_RM pg-server-$cnum" | |
done | |
echo "Removing all servers" | |
docker rm --volumes --force $TO_RM | |
docker ps -a |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment