Skip to content

Instantly share code, notes, and snippets.

@niklv
Created May 7, 2017 18:27
Show Gist options
  • Save niklv/74dcd9bf976dd73f50c834ccb75ed31d to your computer and use it in GitHub Desktop.
Save niklv/74dcd9bf976dd73f50c834ccb75ed31d to your computer and use it in GitHub Desktop.
Start postgresql db in docker container for development
#!/usr/bin/env bash
db_user="project_name"
db_password="123456"
db_name="project_name"
db_port=5432
timeout=10 # wait 10 seconds
echo 'Postgresql startup script'
echo 'stop'
docker stop postgres
echo 'remove'
docker rm postgres -fv
echo 'pull new version'
docker pull postgres
echo 'start container'
docker run --name postgres -p 0.0.0.0:$db_port:5432 -e POSTGRES_USER=$db_user -e POSTGRES_PASSWORD=$db_pass -e POSTGRES_DB=$db_name -d postgres
retries=0
# ip is docker machine
while ! nc -z 192.168.99.100 $db_port; do
echo "wait for startup #$retries"
retries=$((retries+1))
if [[ "$retries" -gt "$timeout" ]]; then
echo "Postges not started properly. Exit."
exit 1
fi
sleep 1
done
sleep 1
echo 'init db'
# some way to init db
# knex migrate:latest
# knex seed:run
# psql -h 192.168.99.100 -d project_name -U project_name -p $db_port -a -q -f ./initDb.sql
echo 'Done. Exit.'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment