Skip to content

Instantly share code, notes, and snippets.

@mj41
Last active April 10, 2016 19:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mj41/773f4eea892c9f3ebe6b0da8dae380ff to your computer and use it in GitHub Desktop.
Save mj41/773f4eea892c9f3ebe6b0da8dae380ff to your computer and use it in GitHub Desktop.
Postgres inside Docker Xtimes benchmark
#!/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