Loading images/postgres/01-initdb.sh +5 −5 Original line number Diff line number Diff line Loading @@ -48,20 +48,20 @@ fi export DB_INITIALISED=true echo "[info] Initialising database in $PGDATA" eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS" eval '/usr/pgsql-10/bin/initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS" echo "[info] Starting local server" export PGUSER="$POSTGRES_USER" export PGPASSWORD="$POSTGRES_PASSWORD" pg_ctl -D "$PGDATA" -o "-c listen_addresses='' -p $PGPORT" -w start /usr/pgsql-10/bin/pg_ctl -D "$PGDATA" -o "-c listen_addresses='' -p $PGPORT" -w start if [ "$POSTGRES_DATABASE" != 'postgres' ]; then echo "[info] Creating database - $POSTGRES_DATABASE" psql -v ON_ERROR_STOP=1 --dbname postgres --set db="$POSTGRES_DATABASE" <<< 'CREATE DATABASE :"db" ;' /usr/pgsql-10/bin/psql -v ON_ERROR_STOP=1 --dbname postgres --set db="$POSTGRES_DATABASE" <<< 'CREATE DATABASE :"db" ;' fi echo "[info] Running database setup scripts from $ESGF_INIT_DB_DIR" psql=( psql -v ON_ERROR_STOP=1 --dbname "$POSTGRES_DATABASE" ) psql=( /usr/pgsql-10/bin/psql -v ON_ERROR_STOP=1 --dbname "$POSTGRES_DATABASE" ) if [ -d "$ESGF_INIT_DB_DIR" ]; then for file in $(find $ESGF_INIT_DB_DIR -mindepth 1 -type f | sort -n); do echo "[info] Running database setup from $file" Loading @@ -75,7 +75,7 @@ if [ -d "$ESGF_INIT_DB_DIR" ]; then fi echo "[info] Stopping local server" pg_ctl -D "$PGDATA" -m fast -w stop /usr/pgsql-10/bin/pg_ctl -D "$PGDATA" -m fast -w stop unset PGUSER PGPASSWORD echo "[info] Database initialisation complete!" images/postgres/Dockerfile +5 −4 Original line number Diff line number Diff line Loading @@ -19,12 +19,13 @@ ENV PGPORT 5432 # We also munge the sample config files to be correct for our use case by default, i.e. # listen on all addresses and allow password-based auth RUN yum makecache && \ yum install -y postgresql-server && \ yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm && \ yum install -y postgresql10-server-10.12* && \ yum clean all && \ mkdir -p /var/lib/pgsql/data && \ chown -R $ESGF_USER:$ESGF_GROUP /var/lib/pgsql /run/postgresql && \ sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/share/pgsql/postgresql.conf.sample && \ echo "host all all all md5" >> /usr/share/pgsql/pg_hba.conf.sample sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/pgsql-10/share/postgresql.conf.sample && \ echo "host all all all md5" >> /usr/pgsql-10/share/pg_hba.conf.sample # Install database initialisation script COPY 01-initdb.sh $ESGF_INIT_DIR/ Loading @@ -32,4 +33,4 @@ COPY 01-initdb.sh $ESGF_INIT_DIR/ # Run as the esgf user by default USER $ESGF_UID EXPOSE 5432 CMD ["postgres"] CMD ["/usr/pgsql-10/bin/postgres"] Loading
images/postgres/01-initdb.sh +5 −5 Original line number Diff line number Diff line Loading @@ -48,20 +48,20 @@ fi export DB_INITIALISED=true echo "[info] Initialising database in $PGDATA" eval 'initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS" eval '/usr/pgsql-10/bin/initdb --username="$POSTGRES_USER" --pwfile=<(echo "$POSTGRES_PASSWORD") '"$POSTGRES_INITDB_ARGS" echo "[info] Starting local server" export PGUSER="$POSTGRES_USER" export PGPASSWORD="$POSTGRES_PASSWORD" pg_ctl -D "$PGDATA" -o "-c listen_addresses='' -p $PGPORT" -w start /usr/pgsql-10/bin/pg_ctl -D "$PGDATA" -o "-c listen_addresses='' -p $PGPORT" -w start if [ "$POSTGRES_DATABASE" != 'postgres' ]; then echo "[info] Creating database - $POSTGRES_DATABASE" psql -v ON_ERROR_STOP=1 --dbname postgres --set db="$POSTGRES_DATABASE" <<< 'CREATE DATABASE :"db" ;' /usr/pgsql-10/bin/psql -v ON_ERROR_STOP=1 --dbname postgres --set db="$POSTGRES_DATABASE" <<< 'CREATE DATABASE :"db" ;' fi echo "[info] Running database setup scripts from $ESGF_INIT_DB_DIR" psql=( psql -v ON_ERROR_STOP=1 --dbname "$POSTGRES_DATABASE" ) psql=( /usr/pgsql-10/bin/psql -v ON_ERROR_STOP=1 --dbname "$POSTGRES_DATABASE" ) if [ -d "$ESGF_INIT_DB_DIR" ]; then for file in $(find $ESGF_INIT_DB_DIR -mindepth 1 -type f | sort -n); do echo "[info] Running database setup from $file" Loading @@ -75,7 +75,7 @@ if [ -d "$ESGF_INIT_DB_DIR" ]; then fi echo "[info] Stopping local server" pg_ctl -D "$PGDATA" -m fast -w stop /usr/pgsql-10/bin/pg_ctl -D "$PGDATA" -m fast -w stop unset PGUSER PGPASSWORD echo "[info] Database initialisation complete!"
images/postgres/Dockerfile +5 −4 Original line number Diff line number Diff line Loading @@ -19,12 +19,13 @@ ENV PGPORT 5432 # We also munge the sample config files to be correct for our use case by default, i.e. # listen on all addresses and allow password-based auth RUN yum makecache && \ yum install -y postgresql-server && \ yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm && \ yum install -y postgresql10-server-10.12* && \ yum clean all && \ mkdir -p /var/lib/pgsql/data && \ chown -R $ESGF_USER:$ESGF_GROUP /var/lib/pgsql /run/postgresql && \ sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/share/pgsql/postgresql.conf.sample && \ echo "host all all all md5" >> /usr/share/pgsql/pg_hba.conf.sample sed -ri "s!^#?(listen_addresses)\s*=\s*\S+.*!\1 = '*'!" /usr/pgsql-10/share/postgresql.conf.sample && \ echo "host all all all md5" >> /usr/pgsql-10/share/pg_hba.conf.sample # Install database initialisation script COPY 01-initdb.sh $ESGF_INIT_DIR/ Loading @@ -32,4 +33,4 @@ COPY 01-initdb.sh $ESGF_INIT_DIR/ # Run as the esgf user by default USER $ESGF_UID EXPOSE 5432 CMD ["postgres"] CMD ["/usr/pgsql-10/bin/postgres"]