From a6b898863b7a9a0bacb57482b46d73760e8d9447 Mon Sep 17 00:00:00 2001 From: Christian Beikov Date: Fri, 8 Dec 2023 14:31:25 +0100 Subject: [PATCH] HHH-17540 Update EDB CI testing to 16 --- docker_db.sh | 10 ++++++++- edb/edb16.Dockerfile | 48 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 edb/edb16.Dockerfile diff --git a/docker_db.sh b/docker_db.sh index 0c4fc16fa4..e9173c5f5b 100755 --- a/docker_db.sh +++ b/docker_db.sh @@ -224,7 +224,7 @@ postgresql_16() { } edb() { - edb_15 + edb_16 } edb_12() { @@ -248,6 +248,13 @@ edb_15() { $CONTAINER_CLI run --name edb -e POSTGRES_USER=hibernate_orm_test -e POSTGRES_PASSWORD=hibernate_orm_test -e POSTGRES_DB=hibernate_orm_test -p 5444:5444 -d edb-test:15 } +edb_16() { + $CONTAINER_CLI rm -f edb || true + # We need to build a derived image because the existing image is mainly made for use by a kubernetes operator + (cd edb; $CONTAINER_CLI build -t edb-test:16 -f edb16.Dockerfile .) + $CONTAINER_CLI run --name edb -e POSTGRES_USER=hibernate_orm_test -e POSTGRES_PASSWORD=hibernate_orm_test -e POSTGRES_DB=hibernate_orm_test -p 5444:5444 -d edb-test:16 +} + db2() { db2_11_5 } @@ -936,6 +943,7 @@ if [ -z ${1} ]; then echo -e "\tdb2_10_5" echo -e "\tdb2_spatial" echo -e "\tedb" + echo -e "\tedb_16" echo -e "\tedb_15" echo -e "\tedb_14" echo -e "\tedb_12" diff --git a/edb/edb16.Dockerfile b/edb/edb16.Dockerfile new file mode 100644 index 0000000000..7acc643140 --- /dev/null +++ b/edb/edb16.Dockerfile @@ -0,0 +1,48 @@ +FROM quay.io/enterprisedb/edb-postgres-advanced:16.1-3.4-postgis +USER root +# this 777 will be replaced by 700 at runtime (allows semi-arbitrary "--user" values) +RUN chown -R postgres:postgres /var/lib/edb && chmod 777 /var/lib/edb && rm /docker-entrypoint-initdb.d/10_postgis.sh + +USER postgres +ENV LANG en_US.utf8 +ENV PG_MAJOR 16 +ENV PG_VERSION 16 +ENV PGPORT 5444 +ENV PGDATA /var/lib/edb/as$PG_MAJOR/data/ +VOLUME /var/lib/edb/as$PG_MAJOR/data/ + +COPY docker-entrypoint.sh /usr/local/bin/ +ENTRYPOINT ["docker-entrypoint.sh"] + +# We set the default STOPSIGNAL to SIGINT, which corresponds to what PostgreSQL +# calls "Fast Shutdown mode" wherein new connections are disallowed and any +# in-progress transactions are aborted, allowing PostgreSQL to stop cleanly and +# flush tables to disk, which is the best compromise available to avoid data +# corruption. +# +# Users who know their applications do not keep open long-lived idle connections +# may way to use a value of SIGTERM instead, which corresponds to "Smart +# Shutdown mode" in which any existing sessions are allowed to finish and the +# server stops when all sessions are terminated. +# +# See https://www.postgresql.org/docs/12/server-shutdown.html for more details +# about available PostgreSQL server shutdown signals. +# +# See also https://www.postgresql.org/docs/12/server-start.html for further +# justification of this as the default value, namely that the example (and +# shipped) systemd service files use the "Fast Shutdown mode" for service +# termination. +# +STOPSIGNAL SIGINT +# +# An additional setting that is recommended for all users regardless of this +# value is the runtime "--stop-timeout" (or your orchestrator/runtime's +# equivalent) for controlling how long to wait between sending the defined +# STOPSIGNAL and sending SIGKILL (which is likely to cause data corruption). +# +# The default in most runtimes (such as Docker) is 10 seconds, and the +# documentation at https://www.postgresql.org/docs/12/server-start.html notes +# that even 90 seconds may not be long enough in many instances. + +EXPOSE 5444 +CMD ["postgres"] \ No newline at end of file