Files
jupyterhub/examples/postgres/db/initdb.sh
2014-11-03 14:34:14 -05:00

29 lines
1.1 KiB
Bash

#!/bin/bash
echo "";
echo "Running initdb.sh.";
if [ -z "$JPY_PSQL_PASSWORD" ]; then
echo "Need to set JPY_PSQL_PASSWORD in Dockerfile or via command line.";
exit 1;
elif [ "$JPY_PSQL_PASSWORD" == "arglebargle" ]; then
echo "WARNING: Running with default password!"
echo "You are STRONGLY ADVISED to use your own password.";
fi
echo "";
# Start a postgres daemon, ignoring log output.
gosu postgres pg_ctl start -w -l /dev/null
# Create a Jupyterhub user and database.
gosu postgres psql -c "CREATE DATABASE jupyterhub;"
gosu postgres psql -c "CREATE USER jupyterhub WITH ENCRYPTED PASSWORD '$JPY_PSQL_PASSWORD';"
gosu postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE jupyterhub TO jupyterhub;"
# Alter pg_hba.conf to actually require passwords. The default image exposes
# allows any user to connect without requiring a password, which is a liability
# if this is run forwarding ports from the host machine.
sed -ri -e 's/(host all all 0.0.0.0\/0 )(trust)/\1md5/' "$PGDATA"/pg_hba.conf
# Stop the daemon. The root Dockerfile will restart the server for us.
gosu postgres pg_ctl stop -w