Mercurial > dive4elements > river
diff docker/Dockerfile.db @ 9720:13e2d38ad314 3.2.x
Improve Docker based setup
_ Make CentOS based images more resilient against package installation
problems
_ Upgrade database image to Debian bullseye to avoid OpenSSL bug that
prevented downloading demo data and do some cleanup in passing
_ Add docker-compose file for more automated setup
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 24 Feb 2022 18:49:02 +0100 |
parents | c3afc0274bba |
children | 95496d21b4da |
line wrap: on
line diff
--- a/docker/Dockerfile.db Mon Jul 12 14:39:58 2021 +0200 +++ b/docker/Dockerfile.db Thu Feb 24 18:49:02 2022 +0100 @@ -1,7 +1,9 @@ # Docker file for postgresql 9.4 on debain -FROM debian:jessie -MAINTAINER tom@intevation.de +FROM debian:bullseye +LABEL maintainer tom.gottfried@intevation.de + +ENV PG_VERSION 13 # # Use utf-8 @@ -19,25 +21,25 @@ # # Install packages # -RUN apt-get update && \ - apt-get install -y postgresql-9.4-postgis-2.1 postgis curl +RUN apt-get install -y postgresql-$PG_VERSION-postgis-3 curl +RUN apt-get -y clean + +ENV PGCONF /etc/postgresql/$PG_VERSION/main/postgresql.conf +ENV PGBIN /usr/lib/postgresql/$PG_VERSION/bin/ +ENV PGDATA /var/lib/postgresql/$PG_VERSION/main # # Use user postgres to run the next commands # USER postgres -RUN /etc/init.d/postgresql start && \ - psql --command "CREATE USER admin WITH SUPERUSER PASSWORD 'secret';" - # # Adjust PostgreSQL configuration so that remote connections to the # database are possible. # RUN echo "host all all 0.0.0.0/0 md5" >> \ - /etc/postgresql/9.4/main/pg_hba.conf + /etc/postgresql/$PG_VERSION/main/pg_hba.conf -ENV PGCONF /etc/postgresql/9.4/main/postgresql.conf RUN echo "listen_addresses='*'" >> $PGCONF # @@ -55,25 +57,25 @@ ADD ./backend/doc/schema /opt/d4eriver_db # Go to postgres home for write permissions -WORKDIR /var/lib/postgresql ENV DATA_ARCH demodaten_3.1.10-bis-3.2.x.tar.gz -RUN curl -s "https://wald.intevation.org/frs/download.php/2282/$DATA_ARCH" | \ - tar --wildcards -xz 'demodaten/*.dump.sql' +RUN curl -sf "https://wald.intevation.org/frs/download.php/2282/$DATA_ARCH" | \ + tar -C $HOME --wildcards -xz 'demodaten/*.dump.sql' -ENV PGDATA /var/lib/postgresql/9.4/main -RUN /usr/lib/postgresql/9.4/bin/pg_ctl start -wo "--config_file=$PGCONF" && \ +RUN $PGBIN/pg_ctl start -wo "--config_file=$PGCONF" && \ /opt/d4eriver_db/postgresql-setup.sh && \ - psql -f demodaten/d4e_demodata.dump.sql d4e && \ + psql -f ~/demodaten/d4e_demodata.dump.sql d4e && \ createuser -S -D -R seddb && \ psql -c "ALTER USER seddb WITH PASSWORD 'seddb'" && \ createdb seddb && \ - psql -f demodaten/seddb_demodata.dump.sql seddb && \ + psql -f ~/demodaten/seddb_demodata.dump.sql seddb && \ psql -c "GRANT SELECT ON ALL TABLES IN SCHEMA public TO seddb" seddb && \ - /usr/lib/postgresql/9.4/bin/pg_ctl stop + $PGBIN/pg_ctl stop -m smart + +RUN rm -r ~/demodaten # # Set the default command to run when starting the container # -CMD ["/usr/lib/postgresql/9.4/bin/postgres", "-D", \ - "/var/lib/postgresql/9.4/main", "-c", \ - "config_file=/etc/postgresql/9.4/main/postgresql.conf"] +CMD ["/usr/lib/postgresql/13/bin/postgres", "-D", \ + "/var/lib/postgresql/13/main", "-c", \ + "config_file=/etc/postgresql/13/main/postgresql.conf"]