#!/bin/sh chown -R postgres "$PGDATA" if [ -z "$(ls -A "$PGDATA")" ]; then gosu postgres initdb sed -ri "s/^#(listen_addresses\s*=\s*)\S+/\1'*'/" "$PGDATA"/postgresql.conf : ${POSTGRES_USER:="postgres"} : ${POSTGRES_DB:=$POSTGRES_USER} if [ "$POSTGRES_PASSWORD" ]; then pass="PASSWORD '$POSTGRES_PASSWORD'" authMethod=md5 else echo "===============================" echo "!!! NO PASSWORD SET !!! (Use \$POSTGRES_PASSWORD env var)" echo "===============================" pass= authMethod=trust fi echo if [ "$POSTGRES_DB" != 'postgres' ]; then createSql="CREATE DATABASE $POSTGRES_DB;" echo $createSql | gosu postgres postgres --single -jE echo fi if [ "$POSTGRES_USER" != 'postgres' ]; then op=CREATE else op=ALTER fi userSql="$op USER $POSTGRES_USER WITH SUPERUSER $pass;" echo $userSql | gosu postgres postgres --single -jE echo gosu postgres pg_ctl -D "$PGDATA" \ -o "-c listen_addresses=''" \ -w start echo for f in /docker-entrypoint-initdb.d/*; do case "$f" in *.sh) echo "$0: running $f"; . "$f" ;; *.sql) echo "$0: running $f"; psql --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" < "$f" && echo ;; *) echo "$0: ignoring $f" ;; esac echo done gosu postgres pg_ctl -D "$PGDATA" -m fast -w stop { echo; echo "host all all 0.0.0.0/0 $authMethod"; } >> "$PGDATA"/pg_hba.conf fi exec gosu postgres postgres