From 8a0cbf9bcc303e990d0bca4e35c813fd0b4f3071 Mon Sep 17 00:00:00 2001 From: ImreSamu Date: Fri, 19 Jul 2024 16:20:10 +0200 Subject: [PATCH] fix/add pg17beta2 and postgis3.5.0alpha2 - rename/fix 17-beta to 17beta2-master - add 17beta2-3.5.0alpha2-alpine - add 16-3.5.0alpha2-alpine - update README.md, update.sh, main.yml running ./update.sh --- .github/workflows/main.yml | 9 ++ 15-master/Dockerfile | 22 ++-- 16-3.5.0alpha2/Dockerfile | 3 + 16-3.5.0alpha2/alpine/Dockerfile | 124 ++++++++++++++++++ .../alpine}/initdb-postgis.sh | 0 .../alpine}/update-postgis.sh | 0 16-master/Dockerfile | 22 ++-- 17beta2-3.5.0alpha2/Dockerfile | 3 + 17beta2-3.5.0alpha2/alpine/Dockerfile | 124 ++++++++++++++++++ 17beta2-3.5.0alpha2/alpine/initdb-postgis.sh | 25 ++++ 17beta2-3.5.0alpha2/alpine/update-postgis.sh | 28 ++++ {17-beta => 17beta2-master}/Dockerfile | 24 ++-- 17beta2-master/initdb-postgis.sh | 25 ++++ 17beta2-master/update-postgis.sh | 28 ++++ README.md | 5 +- update.sh | 2 + 16 files changed, 409 insertions(+), 35 deletions(-) create mode 100644 16-3.5.0alpha2/Dockerfile create mode 100644 16-3.5.0alpha2/alpine/Dockerfile rename {17-beta => 16-3.5.0alpha2/alpine}/initdb-postgis.sh (100%) rename {17-beta => 16-3.5.0alpha2/alpine}/update-postgis.sh (100%) create mode 100644 17beta2-3.5.0alpha2/Dockerfile create mode 100644 17beta2-3.5.0alpha2/alpine/Dockerfile create mode 100644 17beta2-3.5.0alpha2/alpine/initdb-postgis.sh create mode 100755 17beta2-3.5.0alpha2/alpine/update-postgis.sh rename {17-beta => 17beta2-master}/Dockerfile (94%) create mode 100644 17beta2-master/initdb-postgis.sh create mode 100755 17beta2-master/update-postgis.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9687a2a4..b4e60b99 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,6 +25,15 @@ jobs: - postgres: 16 postgis: master variant: default + - postgres: 17beta2 + postgis: master + variant: default + - postgres: 16 + postgis: 3.5.0alpha2 + variant: alpine + - postgres: 17beta2 + postgis: 3.5.0alpha2 + variant: alpine name: Build docker image for ${{ matrix.postgres }}-${{ matrix.postgis }} variant ${{ matrix.variant }} runs-on: ubuntu-20.04 diff --git a/15-master/Dockerfile b/15-master/Dockerfile index ea0ad7d2..6b803a84 100644 --- a/15-master/Dockerfile +++ b/15-master/Dockerfile @@ -88,8 +88,8 @@ ENV DOCKER_CMAKE_BUILD_TYPE=${DOCKER_CMAKE_BUILD_TYPE} # one can benefit from the latest CGAL patches while avoiding compatibility issues. ARG CGAL_GIT_BRANCH ENV CGAL_GIT_BRANCH=${CGAL_GIT_BRANCH} -ENV CGAL5X_GIT_HASH 188e51bad36ffc30e49dbabda29620b71a84664c -ENV SFCGAL_GIT_HASH 61f3b08ade49493b56c6bafa98c7c1f84addbc10 +ENV CGAL5X_GIT_HASH dfa981a844c121f4407e1f83092ccc533197b932 +ENV SFCGAL_GIT_HASH a976da3b52692f4d3c30c898eac80673f8507b6d RUN set -ex \ && mkdir -p /usr/src \ && cd /usr/src \ @@ -122,7 +122,7 @@ RUN set -ex \ && rm -fr /usr/src/cgal # proj -ENV PROJ_GIT_HASH 356496f7b60ee0235189dd51d99aac700fbd2bdc +ENV PROJ_GIT_HASH cce46228bde5b7dfa6d3b9048865f43dfbbeda30 RUN set -ex \ && cd /usr/src \ && git clone https://github.com/OSGeo/PROJ.git \ @@ -152,7 +152,7 @@ RUN set -ex \ && rm -fr /usr/src/PROJ # geos -ENV GEOS_GIT_HASH a8d2ed0aba46f88f9b8987526e68eea6565d16ae +ENV GEOS_GIT_HASH 42546119c35e65aad72dea1477eb4a057ead631e RUN set -ex \ && cd /usr/src \ && git clone https://github.com/libgeos/geos.git \ @@ -168,7 +168,7 @@ RUN set -ex \ && rm -fr /usr/src/geos # gdal -ENV GDAL_GIT_HASH d7aed6e0b03f949ba40684f868c63a08d89177b1 +ENV GDAL_GIT_HASH 0c57764ec2040c4e53c0313844ea5afccdc00279 RUN set -ex \ && cd /usr/src \ && git clone https://github.com/OSGeo/gdal.git \ @@ -301,11 +301,11 @@ COPY --from=builder /usr/local /usr/local ARG CGAL_GIT_BRANCH ENV CGAL_GIT_BRANCH=${CGAL_GIT_BRANCH} -ENV CGAL5X_GIT_HASH 188e51bad36ffc30e49dbabda29620b71a84664c -ENV SFCGAL_GIT_HASH 61f3b08ade49493b56c6bafa98c7c1f84addbc10 -ENV PROJ_GIT_HASH 356496f7b60ee0235189dd51d99aac700fbd2bdc -ENV GEOS_GIT_HASH a8d2ed0aba46f88f9b8987526e68eea6565d16ae -ENV GDAL_GIT_HASH d7aed6e0b03f949ba40684f868c63a08d89177b1 +ENV CGAL5X_GIT_HASH dfa981a844c121f4407e1f83092ccc533197b932 +ENV SFCGAL_GIT_HASH a976da3b52692f4d3c30c898eac80673f8507b6d +ENV PROJ_GIT_HASH cce46228bde5b7dfa6d3b9048865f43dfbbeda30 +ENV GEOS_GIT_HASH 42546119c35e65aad72dea1477eb4a057ead631e +ENV GDAL_GIT_HASH 0c57764ec2040c4e53c0313844ea5afccdc00279 # Minimal command line test ( fail fast ) RUN set -ex \ @@ -324,7 +324,7 @@ RUN set -ex \ || echo "ogr2ogr missing PostgreSQL driver" && exit 1 # install postgis -ENV POSTGIS_GIT_HASH 8ed84517a9b86c86724504d1b6a0f0c1ccd86cf6 +ENV POSTGIS_GIT_HASH 95c525d310b783db4a52d85506ef3cc713238683 RUN set -ex \ && apt-get update \ diff --git a/16-3.5.0alpha2/Dockerfile b/16-3.5.0alpha2/Dockerfile new file mode 100644 index 00000000..51881a02 --- /dev/null +++ b/16-3.5.0alpha2/Dockerfile @@ -0,0 +1,3 @@ + # placeholder Dockerfile + # Debian version of postgis is not detected! + # This is an autogenerated message of ./update.sh diff --git a/16-3.5.0alpha2/alpine/Dockerfile b/16-3.5.0alpha2/alpine/Dockerfile new file mode 100644 index 00000000..b45e796c --- /dev/null +++ b/16-3.5.0alpha2/alpine/Dockerfile @@ -0,0 +1,124 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "make update"! PLEASE DO NOT EDIT IT DIRECTLY. +# +ARG BASE_IMAGE=postgres:16-alpine3.18 +FROM ${BASE_IMAGE} + +LABEL maintainer="PostGIS Project - https://postgis.net" \ + org.opencontainers.image.description="PostGIS 3.5.0alpha2 spatial database extension with PostgreSQL 16 Alpine" \ + org.opencontainers.image.source="https://github.com/postgis/docker-postgis" + +ENV POSTGIS_VERSION 3.5.0alpha2 +ENV POSTGIS_SHA256 27c69b0f3d0a1329897060fb5e8345162d960f30b95f8903e98356fb3236427f + +RUN set -eux \ + && apk add --no-cache --virtual .fetch-deps \ + ca-certificates \ + openssl \ + tar \ + \ + && wget -O postgis.tar.gz "https://github.com/postgis/postgis/archive/${POSTGIS_VERSION}.tar.gz" \ + && echo "${POSTGIS_SHA256} *postgis.tar.gz" | sha256sum -c - \ + && mkdir -p /usr/src/postgis \ + && tar \ + --extract \ + --file postgis.tar.gz \ + --directory /usr/src/postgis \ + --strip-components 1 \ + && rm postgis.tar.gz \ + \ + && apk add --no-cache --virtual .build-deps \ + \ + gdal-dev \ + geos-dev \ + proj-dev \ + proj-util \ + sfcgal-dev \ + \ + # The upstream variable, '$DOCKER_PG_LLVM_DEPS' contains + # the correct versions of 'llvm-dev' and 'clang' for the current version of PostgreSQL. + # This improvement has been discussed in https://github.com/docker-library/postgres/pull/1077 + $DOCKER_PG_LLVM_DEPS \ + \ + autoconf \ + automake \ + cunit-dev \ + file \ + g++ \ + gcc \ + gettext-dev \ + git \ + json-c-dev \ + libtool \ + libxml2-dev \ + make \ + pcre2-dev \ + perl \ + protobuf-c-dev \ + \ +# build PostGIS - with Link Time Optimization (LTO) enabled + && cd /usr/src/postgis \ + && gettextize \ + && ./autogen.sh \ + && ./configure \ + --enable-lto \ + && make -j$(nproc) \ + && make install \ + \ +# This section is for refreshing the proj data for the regression tests. +# It serves as a workaround for an issue documented at https://trac.osgeo.org/postgis/ticket/5316 +# This increases the Docker image size by about 1 MB. + && projsync --system-directory --file ch_swisstopo_CHENyx06_ETRS \ + && projsync --system-directory --file us_noaa_eshpgn \ + && projsync --system-directory --file us_noaa_prvi \ + && projsync --system-directory --file us_noaa_wmhpgn \ +# This section performs a regression check. + && mkdir /tempdb \ + && chown -R postgres:postgres /tempdb \ + && su postgres -c 'pg_ctl -D /tempdb init' \ + && su postgres -c 'pg_ctl -D /tempdb -c -l /tmp/logfile -o '-F' start ' \ + && cd regress \ + && make -j$(nproc) check RUNTESTFLAGS=--extension PGUSER=postgres \ + \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS postgis;"' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS postgis_raster;"' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS postgis_sfcgal;"' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS fuzzystrmatch; --needed for postgis_tiger_geocoder "' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS address_standardizer;"' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS address_standardizer_data_us;"' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder;"' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS postgis_topology;"' \ + && su postgres -c 'psql -t -c "SELECT version();"' >> /_pgis_full_version.txt \ + && su postgres -c 'psql -t -c "SELECT PostGIS_Full_Version();"' >> /_pgis_full_version.txt \ + && su postgres -c 'psql -t -c "\dx"' >> /_pgis_full_version.txt \ + \ + && su postgres -c 'pg_ctl -D /tempdb --mode=immediate stop' \ + && rm -rf /tempdb \ + && rm -rf /tmp/logfile \ + && rm -rf /tmp/pgis_reg \ +# add .postgis-rundeps + && apk add --no-cache --virtual .postgis-rundeps \ + \ + gdal \ + geos \ + proj \ + sfcgal \ + \ + json-c \ + libstdc++ \ + pcre2 \ + protobuf-c \ + \ + # ca-certificates: for accessing remote raster files + # fix https://github.com/postgis/docker-postgis/issues/307 + ca-certificates \ +# clean + && cd / \ + && rm -rf /usr/src/postgis \ + && apk del .fetch-deps .build-deps \ +# At the end of the build, we print the collected information +# from the '/_pgis_full_version.txt' file. This is for experimental and internal purposes. + && cat /_pgis_full_version.txt + +COPY ./initdb-postgis.sh /docker-entrypoint-initdb.d/10_postgis.sh +COPY ./update-postgis.sh /usr/local/bin diff --git a/17-beta/initdb-postgis.sh b/16-3.5.0alpha2/alpine/initdb-postgis.sh similarity index 100% rename from 17-beta/initdb-postgis.sh rename to 16-3.5.0alpha2/alpine/initdb-postgis.sh diff --git a/17-beta/update-postgis.sh b/16-3.5.0alpha2/alpine/update-postgis.sh similarity index 100% rename from 17-beta/update-postgis.sh rename to 16-3.5.0alpha2/alpine/update-postgis.sh diff --git a/16-master/Dockerfile b/16-master/Dockerfile index 091545be..3b9d7835 100644 --- a/16-master/Dockerfile +++ b/16-master/Dockerfile @@ -88,8 +88,8 @@ ENV DOCKER_CMAKE_BUILD_TYPE=${DOCKER_CMAKE_BUILD_TYPE} # one can benefit from the latest CGAL patches while avoiding compatibility issues. ARG CGAL_GIT_BRANCH ENV CGAL_GIT_BRANCH=${CGAL_GIT_BRANCH} -ENV CGAL5X_GIT_HASH 188e51bad36ffc30e49dbabda29620b71a84664c -ENV SFCGAL_GIT_HASH 61f3b08ade49493b56c6bafa98c7c1f84addbc10 +ENV CGAL5X_GIT_HASH dfa981a844c121f4407e1f83092ccc533197b932 +ENV SFCGAL_GIT_HASH a976da3b52692f4d3c30c898eac80673f8507b6d RUN set -ex \ && mkdir -p /usr/src \ && cd /usr/src \ @@ -122,7 +122,7 @@ RUN set -ex \ && rm -fr /usr/src/cgal # proj -ENV PROJ_GIT_HASH 356496f7b60ee0235189dd51d99aac700fbd2bdc +ENV PROJ_GIT_HASH cce46228bde5b7dfa6d3b9048865f43dfbbeda30 RUN set -ex \ && cd /usr/src \ && git clone https://github.com/OSGeo/PROJ.git \ @@ -152,7 +152,7 @@ RUN set -ex \ && rm -fr /usr/src/PROJ # geos -ENV GEOS_GIT_HASH a8d2ed0aba46f88f9b8987526e68eea6565d16ae +ENV GEOS_GIT_HASH 42546119c35e65aad72dea1477eb4a057ead631e RUN set -ex \ && cd /usr/src \ && git clone https://github.com/libgeos/geos.git \ @@ -168,7 +168,7 @@ RUN set -ex \ && rm -fr /usr/src/geos # gdal -ENV GDAL_GIT_HASH d7aed6e0b03f949ba40684f868c63a08d89177b1 +ENV GDAL_GIT_HASH 0c57764ec2040c4e53c0313844ea5afccdc00279 RUN set -ex \ && cd /usr/src \ && git clone https://github.com/OSGeo/gdal.git \ @@ -301,11 +301,11 @@ COPY --from=builder /usr/local /usr/local ARG CGAL_GIT_BRANCH ENV CGAL_GIT_BRANCH=${CGAL_GIT_BRANCH} -ENV CGAL5X_GIT_HASH 188e51bad36ffc30e49dbabda29620b71a84664c -ENV SFCGAL_GIT_HASH 61f3b08ade49493b56c6bafa98c7c1f84addbc10 -ENV PROJ_GIT_HASH 356496f7b60ee0235189dd51d99aac700fbd2bdc -ENV GEOS_GIT_HASH a8d2ed0aba46f88f9b8987526e68eea6565d16ae -ENV GDAL_GIT_HASH d7aed6e0b03f949ba40684f868c63a08d89177b1 +ENV CGAL5X_GIT_HASH dfa981a844c121f4407e1f83092ccc533197b932 +ENV SFCGAL_GIT_HASH a976da3b52692f4d3c30c898eac80673f8507b6d +ENV PROJ_GIT_HASH cce46228bde5b7dfa6d3b9048865f43dfbbeda30 +ENV GEOS_GIT_HASH 42546119c35e65aad72dea1477eb4a057ead631e +ENV GDAL_GIT_HASH 0c57764ec2040c4e53c0313844ea5afccdc00279 # Minimal command line test ( fail fast ) RUN set -ex \ @@ -324,7 +324,7 @@ RUN set -ex \ || echo "ogr2ogr missing PostgreSQL driver" && exit 1 # install postgis -ENV POSTGIS_GIT_HASH 8ed84517a9b86c86724504d1b6a0f0c1ccd86cf6 +ENV POSTGIS_GIT_HASH 95c525d310b783db4a52d85506ef3cc713238683 RUN set -ex \ && apt-get update \ diff --git a/17beta2-3.5.0alpha2/Dockerfile b/17beta2-3.5.0alpha2/Dockerfile new file mode 100644 index 00000000..51881a02 --- /dev/null +++ b/17beta2-3.5.0alpha2/Dockerfile @@ -0,0 +1,3 @@ + # placeholder Dockerfile + # Debian version of postgis is not detected! + # This is an autogenerated message of ./update.sh diff --git a/17beta2-3.5.0alpha2/alpine/Dockerfile b/17beta2-3.5.0alpha2/alpine/Dockerfile new file mode 100644 index 00000000..d05aa8cf --- /dev/null +++ b/17beta2-3.5.0alpha2/alpine/Dockerfile @@ -0,0 +1,124 @@ +# +# NOTE: THIS DOCKERFILE IS GENERATED VIA "make update"! PLEASE DO NOT EDIT IT DIRECTLY. +# +ARG BASE_IMAGE=postgres:17beta2-alpine3.18 +FROM ${BASE_IMAGE} + +LABEL maintainer="PostGIS Project - https://postgis.net" \ + org.opencontainers.image.description="PostGIS 3.5.0alpha2 spatial database extension with PostgreSQL 17beta2 Alpine" \ + org.opencontainers.image.source="https://github.com/postgis/docker-postgis" + +ENV POSTGIS_VERSION 3.5.0alpha2 +ENV POSTGIS_SHA256 27c69b0f3d0a1329897060fb5e8345162d960f30b95f8903e98356fb3236427f + +RUN set -eux \ + && apk add --no-cache --virtual .fetch-deps \ + ca-certificates \ + openssl \ + tar \ + \ + && wget -O postgis.tar.gz "https://github.com/postgis/postgis/archive/${POSTGIS_VERSION}.tar.gz" \ + && echo "${POSTGIS_SHA256} *postgis.tar.gz" | sha256sum -c - \ + && mkdir -p /usr/src/postgis \ + && tar \ + --extract \ + --file postgis.tar.gz \ + --directory /usr/src/postgis \ + --strip-components 1 \ + && rm postgis.tar.gz \ + \ + && apk add --no-cache --virtual .build-deps \ + \ + gdal-dev \ + geos-dev \ + proj-dev \ + proj-util \ + sfcgal-dev \ + \ + # The upstream variable, '$DOCKER_PG_LLVM_DEPS' contains + # the correct versions of 'llvm-dev' and 'clang' for the current version of PostgreSQL. + # This improvement has been discussed in https://github.com/docker-library/postgres/pull/1077 + $DOCKER_PG_LLVM_DEPS \ + \ + autoconf \ + automake \ + cunit-dev \ + file \ + g++ \ + gcc \ + gettext-dev \ + git \ + json-c-dev \ + libtool \ + libxml2-dev \ + make \ + pcre2-dev \ + perl \ + protobuf-c-dev \ + \ +# build PostGIS - with Link Time Optimization (LTO) enabled + && cd /usr/src/postgis \ + && gettextize \ + && ./autogen.sh \ + && ./configure \ + --enable-lto \ + && make -j$(nproc) \ + && make install \ + \ +# This section is for refreshing the proj data for the regression tests. +# It serves as a workaround for an issue documented at https://trac.osgeo.org/postgis/ticket/5316 +# This increases the Docker image size by about 1 MB. + && projsync --system-directory --file ch_swisstopo_CHENyx06_ETRS \ + && projsync --system-directory --file us_noaa_eshpgn \ + && projsync --system-directory --file us_noaa_prvi \ + && projsync --system-directory --file us_noaa_wmhpgn \ +# This section performs a regression check. + && mkdir /tempdb \ + && chown -R postgres:postgres /tempdb \ + && su postgres -c 'pg_ctl -D /tempdb init' \ + && su postgres -c 'pg_ctl -D /tempdb -c -l /tmp/logfile -o '-F' start ' \ + && cd regress \ + && make -j$(nproc) check RUNTESTFLAGS=--extension PGUSER=postgres \ + \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS postgis;"' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS postgis_raster;"' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS postgis_sfcgal;"' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS fuzzystrmatch; --needed for postgis_tiger_geocoder "' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS address_standardizer;"' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS address_standardizer_data_us;"' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder;"' \ + && su postgres -c 'psql -c "CREATE EXTENSION IF NOT EXISTS postgis_topology;"' \ + && su postgres -c 'psql -t -c "SELECT version();"' >> /_pgis_full_version.txt \ + && su postgres -c 'psql -t -c "SELECT PostGIS_Full_Version();"' >> /_pgis_full_version.txt \ + && su postgres -c 'psql -t -c "\dx"' >> /_pgis_full_version.txt \ + \ + && su postgres -c 'pg_ctl -D /tempdb --mode=immediate stop' \ + && rm -rf /tempdb \ + && rm -rf /tmp/logfile \ + && rm -rf /tmp/pgis_reg \ +# add .postgis-rundeps + && apk add --no-cache --virtual .postgis-rundeps \ + \ + gdal \ + geos \ + proj \ + sfcgal \ + \ + json-c \ + libstdc++ \ + pcre2 \ + protobuf-c \ + \ + # ca-certificates: for accessing remote raster files + # fix https://github.com/postgis/docker-postgis/issues/307 + ca-certificates \ +# clean + && cd / \ + && rm -rf /usr/src/postgis \ + && apk del .fetch-deps .build-deps \ +# At the end of the build, we print the collected information +# from the '/_pgis_full_version.txt' file. This is for experimental and internal purposes. + && cat /_pgis_full_version.txt + +COPY ./initdb-postgis.sh /docker-entrypoint-initdb.d/10_postgis.sh +COPY ./update-postgis.sh /usr/local/bin diff --git a/17beta2-3.5.0alpha2/alpine/initdb-postgis.sh b/17beta2-3.5.0alpha2/alpine/initdb-postgis.sh new file mode 100644 index 00000000..e38ad7d6 --- /dev/null +++ b/17beta2-3.5.0alpha2/alpine/initdb-postgis.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -e + +# Perform all actions as $POSTGRES_USER +export PGUSER="$POSTGRES_USER" + +# Create the 'template_postgis' template db +"${psql[@]}" <<- 'EOSQL' +CREATE DATABASE template_postgis IS_TEMPLATE true; +EOSQL + +# Load PostGIS into both template_database and $POSTGRES_DB +for DB in template_postgis "$POSTGRES_DB"; do + echo "Loading PostGIS extensions into $DB" + "${psql[@]}" --dbname="$DB" <<-'EOSQL' + CREATE EXTENSION IF NOT EXISTS postgis; + CREATE EXTENSION IF NOT EXISTS postgis_topology; + -- Reconnect to update pg_setting.resetval + -- See https://github.com/postgis/docker-postgis/issues/288 + \c + CREATE EXTENSION IF NOT EXISTS fuzzystrmatch; + CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder; +EOSQL +done diff --git a/17beta2-3.5.0alpha2/alpine/update-postgis.sh b/17beta2-3.5.0alpha2/alpine/update-postgis.sh new file mode 100755 index 00000000..f98abd26 --- /dev/null +++ b/17beta2-3.5.0alpha2/alpine/update-postgis.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +set -e + +# Perform all actions as $POSTGRES_USER +export PGUSER="$POSTGRES_USER" + +POSTGIS_VERSION="${POSTGIS_VERSION%%+*}" + +# Load PostGIS into both template_database and $POSTGRES_DB +for DB in template_postgis "$POSTGRES_DB" "${@}"; do + echo "Updating PostGIS extensions '$DB' to $POSTGIS_VERSION" + psql --dbname="$DB" -c " + -- Upgrade PostGIS (includes raster) + CREATE EXTENSION IF NOT EXISTS postgis VERSION '$POSTGIS_VERSION'; + ALTER EXTENSION postgis UPDATE TO '$POSTGIS_VERSION'; + + -- Upgrade Topology + CREATE EXTENSION IF NOT EXISTS postgis_topology VERSION '$POSTGIS_VERSION'; + ALTER EXTENSION postgis_topology UPDATE TO '$POSTGIS_VERSION'; + + -- Install Tiger dependencies in case not already installed + CREATE EXTENSION IF NOT EXISTS fuzzystrmatch; + -- Upgrade US Tiger Geocoder + CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder VERSION '$POSTGIS_VERSION'; + ALTER EXTENSION postgis_tiger_geocoder UPDATE TO '$POSTGIS_VERSION'; + " +done diff --git a/17-beta/Dockerfile b/17beta2-master/Dockerfile similarity index 94% rename from 17-beta/Dockerfile rename to 17beta2-master/Dockerfile index 851c1a91..de6800e0 100644 --- a/17-beta/Dockerfile +++ b/17beta2-master/Dockerfile @@ -10,7 +10,7 @@ ARG CGAL_GIT_BRANCH=5.6.x-branch FROM postgres:17beta2-bullseye as builder LABEL maintainer="PostGIS Project - https://postgis.net" \ - org.opencontainers.image.description="PostGIS - master spatial database extension with PostgreSQL 16 bullseye" \ + org.opencontainers.image.description="PostGIS - master spatial database extension with PostgreSQL 17beta2 bullseye" \ org.opencontainers.image.source="https://github.com/postgis/docker-postgis" WORKDIR / @@ -88,8 +88,8 @@ ENV DOCKER_CMAKE_BUILD_TYPE=${DOCKER_CMAKE_BUILD_TYPE} # one can benefit from the latest CGAL patches while avoiding compatibility issues. ARG CGAL_GIT_BRANCH ENV CGAL_GIT_BRANCH=${CGAL_GIT_BRANCH} -ENV CGAL5X_GIT_HASH 188e51bad36ffc30e49dbabda29620b71a84664c -ENV SFCGAL_GIT_HASH 61f3b08ade49493b56c6bafa98c7c1f84addbc10 +ENV CGAL5X_GIT_HASH dfa981a844c121f4407e1f83092ccc533197b932 +ENV SFCGAL_GIT_HASH a976da3b52692f4d3c30c898eac80673f8507b6d RUN set -ex \ && mkdir -p /usr/src \ && cd /usr/src \ @@ -122,7 +122,7 @@ RUN set -ex \ && rm -fr /usr/src/cgal # proj -ENV PROJ_GIT_HASH 356496f7b60ee0235189dd51d99aac700fbd2bdc +ENV PROJ_GIT_HASH cce46228bde5b7dfa6d3b9048865f43dfbbeda30 RUN set -ex \ && cd /usr/src \ && git clone https://github.com/OSGeo/PROJ.git \ @@ -152,7 +152,7 @@ RUN set -ex \ && rm -fr /usr/src/PROJ # geos -ENV GEOS_GIT_HASH a8d2ed0aba46f88f9b8987526e68eea6565d16ae +ENV GEOS_GIT_HASH 42546119c35e65aad72dea1477eb4a057ead631e RUN set -ex \ && cd /usr/src \ && git clone https://github.com/libgeos/geos.git \ @@ -168,7 +168,7 @@ RUN set -ex \ && rm -fr /usr/src/geos # gdal -ENV GDAL_GIT_HASH d7aed6e0b03f949ba40684f868c63a08d89177b1 +ENV GDAL_GIT_HASH 0c57764ec2040c4e53c0313844ea5afccdc00279 RUN set -ex \ && cd /usr/src \ && git clone https://github.com/OSGeo/gdal.git \ @@ -301,11 +301,11 @@ COPY --from=builder /usr/local /usr/local ARG CGAL_GIT_BRANCH ENV CGAL_GIT_BRANCH=${CGAL_GIT_BRANCH} -ENV CGAL5X_GIT_HASH 188e51bad36ffc30e49dbabda29620b71a84664c -ENV SFCGAL_GIT_HASH 61f3b08ade49493b56c6bafa98c7c1f84addbc10 -ENV PROJ_GIT_HASH 356496f7b60ee0235189dd51d99aac700fbd2bdc -ENV GEOS_GIT_HASH a8d2ed0aba46f88f9b8987526e68eea6565d16ae -ENV GDAL_GIT_HASH d7aed6e0b03f949ba40684f868c63a08d89177b1 +ENV CGAL5X_GIT_HASH dfa981a844c121f4407e1f83092ccc533197b932 +ENV SFCGAL_GIT_HASH a976da3b52692f4d3c30c898eac80673f8507b6d +ENV PROJ_GIT_HASH cce46228bde5b7dfa6d3b9048865f43dfbbeda30 +ENV GEOS_GIT_HASH 42546119c35e65aad72dea1477eb4a057ead631e +ENV GDAL_GIT_HASH 0c57764ec2040c4e53c0313844ea5afccdc00279 # Minimal command line test ( fail fast ) RUN set -ex \ @@ -324,7 +324,7 @@ RUN set -ex \ || echo "ogr2ogr missing PostgreSQL driver" && exit 1 # install postgis -ENV POSTGIS_GIT_HASH 8ed84517a9b86c86724504d1b6a0f0c1ccd86cf6 +ENV POSTGIS_GIT_HASH 95c525d310b783db4a52d85506ef3cc713238683 RUN set -ex \ && apt-get update \ diff --git a/17beta2-master/initdb-postgis.sh b/17beta2-master/initdb-postgis.sh new file mode 100644 index 00000000..e38ad7d6 --- /dev/null +++ b/17beta2-master/initdb-postgis.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -e + +# Perform all actions as $POSTGRES_USER +export PGUSER="$POSTGRES_USER" + +# Create the 'template_postgis' template db +"${psql[@]}" <<- 'EOSQL' +CREATE DATABASE template_postgis IS_TEMPLATE true; +EOSQL + +# Load PostGIS into both template_database and $POSTGRES_DB +for DB in template_postgis "$POSTGRES_DB"; do + echo "Loading PostGIS extensions into $DB" + "${psql[@]}" --dbname="$DB" <<-'EOSQL' + CREATE EXTENSION IF NOT EXISTS postgis; + CREATE EXTENSION IF NOT EXISTS postgis_topology; + -- Reconnect to update pg_setting.resetval + -- See https://github.com/postgis/docker-postgis/issues/288 + \c + CREATE EXTENSION IF NOT EXISTS fuzzystrmatch; + CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder; +EOSQL +done diff --git a/17beta2-master/update-postgis.sh b/17beta2-master/update-postgis.sh new file mode 100755 index 00000000..f98abd26 --- /dev/null +++ b/17beta2-master/update-postgis.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +set -e + +# Perform all actions as $POSTGRES_USER +export PGUSER="$POSTGRES_USER" + +POSTGIS_VERSION="${POSTGIS_VERSION%%+*}" + +# Load PostGIS into both template_database and $POSTGRES_DB +for DB in template_postgis "$POSTGRES_DB" "${@}"; do + echo "Updating PostGIS extensions '$DB' to $POSTGIS_VERSION" + psql --dbname="$DB" -c " + -- Upgrade PostGIS (includes raster) + CREATE EXTENSION IF NOT EXISTS postgis VERSION '$POSTGIS_VERSION'; + ALTER EXTENSION postgis UPDATE TO '$POSTGIS_VERSION'; + + -- Upgrade Topology + CREATE EXTENSION IF NOT EXISTS postgis_topology VERSION '$POSTGIS_VERSION'; + ALTER EXTENSION postgis_topology UPDATE TO '$POSTGIS_VERSION'; + + -- Install Tiger dependencies in case not already installed + CREATE EXTENSION IF NOT EXISTS fuzzystrmatch; + -- Upgrade US Tiger Geocoder + CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder VERSION '$POSTGIS_VERSION'; + ALTER EXTENSION postgis_tiger_geocoder UPDATE TO '$POSTGIS_VERSION'; + " +done diff --git a/README.md b/README.md index 6f592e2b..98ae5405 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ This image ensures that the default database created by the parent `postgres` im Unless `-e POSTGRES_DB` is passed to the container at startup time, this database will be named after the admin user (either `postgres` or the user specified with `-e POSTGRES_USER`). If you would prefer to use the older template database mechanism for enabling PostGIS, the image also provides a PostGIS-enabled template database called `template_postgis`. -# Versions (2024-02-17) +# Versions (2024-07-19) Supported architecture: `amd64` (also known as X86-64)" @@ -63,7 +63,10 @@ Recommended version for new users: `postgis/postgis:16-3.4` | DockerHub image | Dockerfile | OS | Postgres | PostGIS | | --------------- | ---------- | -- | -------- | ------- | | [postgis/postgis:15-master](https://registry.hub.docker.com/r/postgis/postgis/tags?page=1&name=15-master) | [Dockerfile](https://github.com/postgis/docker-postgis/blob/master/15-master/Dockerfile) | debian:bullseye | 15 | development: postgis, geos, proj, gdal | +| [postgis/postgis:16-3.5.0alpha2-alpine](https://registry.hub.docker.com/r/postgis/postgis/tags?page=1&name=16-3.5.0alpha2-alpine) | [Dockerfile](https://github.com/postgis/docker-postgis/blob/master/16-3.5.0alpha2/alpine/Dockerfile) | alpine:3.18 | 16 | 3.5.0alpha2 | | [postgis/postgis:16-master](https://registry.hub.docker.com/r/postgis/postgis/tags?page=1&name=16-master) | [Dockerfile](https://github.com/postgis/docker-postgis/blob/master/16-master/Dockerfile) | debian:bullseye | 16 | development: postgis, geos, proj, gdal | +| [postgis/postgis:17beta2-3.5.0alpha2-alpine](https://registry.hub.docker.com/r/postgis/postgis/tags?page=1&name=17beta2-3.5.0alpha2-alpine) | [Dockerfile](https://github.com/postgis/docker-postgis/blob/master/17beta2-3.5.0alpha2/alpine/Dockerfile) | alpine:3.18 | 17beta2 | 3.5.0alpha2 | +| [postgis/postgis:17beta2-master](https://registry.hub.docker.com/r/postgis/postgis/tags?page=1&name=17beta2-master) | [Dockerfile](https://github.com/postgis/docker-postgis/blob/master/17beta2-master/Dockerfile) | debian:bullseye | 17beta2 | development: postgis, geos, proj, gdal | ## Usage diff --git a/update.sh b/update.sh index 62733e88..3f24fefa 100755 --- a/update.sh +++ b/update.sh @@ -35,6 +35,7 @@ declare -A debianSuite=( [14]='bullseye-slim' [15]='bullseye-slim' [16]='bullseye-slim' + [17]='bullseye-slim' ) defaultPostgisDebPkgNameVersionSuffix='3' @@ -44,6 +45,7 @@ declare -A postgisDebPkgNameVersionSuffixes=( [3.2]='3' [3.3]='3' [3.4]='3' + [3.5]='3' ) packagesBase='http://apt.postgresql.org/pub/repos/apt/dists/'