view schema/Dockerfile @ 176:0c0826063561

Separate cluster and database specific commands This allows to setup more than one database with demo data on the same cluster by using only the script with database specific commands.
author Tom Gottfried <tom@intevation.de>
date Tue, 17 Jul 2018 12:01:14 +0200
parents 2b04de578be0
children a9d9c2b1d08c
line wrap: on
line source

FROM centos:7
LABEL authors="tom.gottfried@intevation.de"

# Add the PostgreSQL PGP key to verify the official yum repository packages
RUN rpm --import https://yum.postgresql.org/RPM-GPG-KEY-PGDG-10 &&\
    # Add PostgreSQL's repository. It contains the most recent release
    # of PostgreSQL, 10:
    yum -q -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm &&\
    # Install PostgreSQL 10 and PostGIS
    yum -q -y install postgresql10-server &&\
    yum -q -y install epel-release &&\
    yum -q -y install postgis24_10 pgtap10
USER postgres
ENV PGBIN /usr/pgsql-10/bin/

# initdb PostgreSQL 10:
ENV PGDATA /var/lib/pgsql/10/data
ENV PGCONF /var/lib/pgsql/10/data/postgresql.conf
RUN $PGBIN/initdb -E UTF8 2>&1 < /dev/null &&\
    # Adjust PostgreSQL configuration so that remote connections to the
    # database are possible.
    echo "host all  all    0.0.0.0/0  md5" >> /var/lib/pgsql/10/data/pg_hba.conf &&\
    echo "listen_addresses='*'" >> $PGCONF
# Expose the PostgreSQL port
EXPOSE 5432

# Create GEMMA role and database
WORKDIR /opt/gemma
COPY *.sql *.sh ./
COPY demo-data ./demo-data/
RUN $PGBIN/pg_ctl start -wo "--config_file=$PGCONF" && \
    psql -f roles.sql && \
    createdb gemma && \
    psql -f gemma.sql -d gemma && \
    psql -f auth.sql -d gemma && \
    psql -f demo-data/roles.sql -f demo-data/users.sql -d gemma && \
    psql -f demo-data/responsibility_areas.sql -d gemma && \
    $PGBIN/pg_ctl stop -m smart

# Set the default command to run when starting the container
CMD ["/usr/pgsql-10/bin/postgres", "-D", "/var/lib/pgsql/10/data"]