Skip to content

feat: Add pg18beta3 container #426

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 21 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
strategy:
matrix:
runner-platform: ['ubuntu-24.04', 'ubuntu-24.04-arm']
postgres: [13, 14, 15, 16, 17]
postgres: [13, 14, 15, 16, 17, 18beta3]
postgis: ['3.5']
variant: [default, alpine]
include:
Expand All @@ -37,15 +37,14 @@ jobs:
variant: default
runner-platform: 'ubuntu-24.04-arm'
- postgres: 17
postgis: '3.6.0beta1'
postgis: '3.6.0rc1'
variant: alpine
runner-platform: 'ubuntu-24.04'
- postgres: 17
postgis: '3.6.0beta1'
postgis: '3.6.0rc1'
variant: alpine
runner-platform: 'ubuntu-24.04-arm'


name: Build docker image for ${{ matrix.postgres }}-${{ matrix.postgis }} variant ${{ matrix.variant }} on ${{ matrix.runner-platform }}
runs-on: ${{ matrix.runner-platform }}
continue-on-error: ${{ matrix.postgis == 'master' }}
Expand Down
18 changes: 9 additions & 9 deletions 16-master/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ ENV DOCKER_CMAKE_BUILD_TYPE=${DOCKER_CMAKE_BUILD_TYPE}
ARG CGAL_GIT_BRANCH
ENV CGAL_GIT_BRANCH=${CGAL_GIT_BRANCH}
ENV CGAL_GIT_HASH b2ba32307c065676668ec24383d54ee94ec9f402
ENV SFCGAL_GIT_HASH 6b64fbd4d55b20887aa12ffafd848b05629577cc
ENV SFCGAL_GIT_HASH 6856ef9ec1e8a80344b6a99dfdc607c451f54ebc
RUN set -ex \
&& mkdir -p /usr/src \
&& cd /usr/src \
Expand Down Expand Up @@ -120,7 +120,7 @@ RUN set -ex \
&& rm -fr /usr/src/cgal

# proj
ENV PROJ_GIT_HASH 27dfb11f26cae01db9b7981da7d184cfd3a50e50
ENV PROJ_GIT_HASH ff43c46b19802f5953a1546b05f59c5b9ee65795
RUN set -ex \
&& cd /usr/src \
&& git clone https://github.com/OSGeo/PROJ.git \
Expand Down Expand Up @@ -150,7 +150,7 @@ RUN set -ex \
&& rm -fr /usr/src/PROJ

# geos
ENV GEOS_GIT_HASH e308bf7a0dddb6842dc2ac73b5fd5c8a5c599263
ENV GEOS_GIT_HASH 3bdeea5375b13c4f57da6e9e399b2c4e39540737
RUN set -ex \
&& cd /usr/src \
&& git clone https://github.com/libgeos/geos.git \
Expand All @@ -166,7 +166,7 @@ RUN set -ex \
&& rm -fr /usr/src/geos

# gdal
ENV GDAL_GIT_HASH 47b7f08a542c4b589b17f3a2856ded74ba421d9b
ENV GDAL_GIT_HASH eaa0f9610e524c4b7eb2c75456105343533883db
RUN set -ex \
&& cd /usr/src \
&& git clone https://github.com/OSGeo/gdal.git \
Expand Down Expand Up @@ -300,10 +300,10 @@ COPY --from=builder /usr/local /usr/local
ARG CGAL_GIT_BRANCH
ENV CGAL_GIT_BRANCH=${CGAL_GIT_BRANCH}
ENV CGAL_GIT_HASH b2ba32307c065676668ec24383d54ee94ec9f402
ENV SFCGAL_GIT_HASH 6b64fbd4d55b20887aa12ffafd848b05629577cc
ENV PROJ_GIT_HASH 27dfb11f26cae01db9b7981da7d184cfd3a50e50
ENV GEOS_GIT_HASH e308bf7a0dddb6842dc2ac73b5fd5c8a5c599263
ENV GDAL_GIT_HASH 47b7f08a542c4b589b17f3a2856ded74ba421d9b
ENV SFCGAL_GIT_HASH 6856ef9ec1e8a80344b6a99dfdc607c451f54ebc
ENV PROJ_GIT_HASH ff43c46b19802f5953a1546b05f59c5b9ee65795
ENV GEOS_GIT_HASH 3bdeea5375b13c4f57da6e9e399b2c4e39540737
ENV GDAL_GIT_HASH eaa0f9610e524c4b7eb2c75456105343533883db

# Minimal command line test ( fail fast )
RUN set -ex \
Expand All @@ -322,7 +322,7 @@ RUN set -ex \
|| echo "ogr2ogr missing PostgreSQL driver" && exit 1

# install postgis
ENV POSTGIS_GIT_HASH 7c8cfe07df65efa1c5a715ad69fbdec06413ed2f
ENV POSTGIS_GIT_HASH a44991cf3c2059d48be92a6d4edbc2d58575736f

RUN set -ex \
&& apt-get update \
Expand Down
3 changes: 3 additions & 0 deletions 17-3.6.0rc1/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# placeholder Dockerfile
# Debian version of postgis is not detected!
# This is an autogenerated message of ./update.sh
124 changes: 124 additions & 0 deletions 17-3.6.0rc1/alpine/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
#
# NOTE: THIS DOCKERFILE IS GENERATED VIA "make update"! PLEASE DO NOT EDIT IT DIRECTLY.
#
ARG BASE_IMAGE=postgres:17-alpine3.22
FROM ${BASE_IMAGE}

LABEL maintainer="PostGIS Project - https://postgis.net" \
org.opencontainers.image.description="PostGIS 3.6.0rc1 spatial database extension with PostgreSQL 17 Alpine" \
org.opencontainers.image.source="https://github.com/postgis/docker-postgis"

ENV POSTGIS_VERSION 3.6.0rc1
ENV POSTGIS_SHA256 fb03d4e21a58b701e61adee767acf1304138e8e5f2794c2362f37cd42d5f5f09

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 --verbose" 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
25 changes: 25 additions & 0 deletions 17-3.6.0rc1/alpine/initdb-postgis.sh
Original file line number Diff line number Diff line change
@@ -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
28 changes: 28 additions & 0 deletions 17-3.6.0rc1/alpine/update-postgis.sh
Original file line number Diff line number Diff line change
@@ -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
18 changes: 9 additions & 9 deletions 17-master/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ ENV DOCKER_CMAKE_BUILD_TYPE=${DOCKER_CMAKE_BUILD_TYPE}
ARG CGAL_GIT_BRANCH
ENV CGAL_GIT_BRANCH=${CGAL_GIT_BRANCH}
ENV CGAL_GIT_HASH b2ba32307c065676668ec24383d54ee94ec9f402
ENV SFCGAL_GIT_HASH 6b64fbd4d55b20887aa12ffafd848b05629577cc
ENV SFCGAL_GIT_HASH 6856ef9ec1e8a80344b6a99dfdc607c451f54ebc
RUN set -ex \
&& mkdir -p /usr/src \
&& cd /usr/src \
Expand Down Expand Up @@ -120,7 +120,7 @@ RUN set -ex \
&& rm -fr /usr/src/cgal

# proj
ENV PROJ_GIT_HASH 27dfb11f26cae01db9b7981da7d184cfd3a50e50
ENV PROJ_GIT_HASH ff43c46b19802f5953a1546b05f59c5b9ee65795
RUN set -ex \
&& cd /usr/src \
&& git clone https://github.com/OSGeo/PROJ.git \
Expand Down Expand Up @@ -150,7 +150,7 @@ RUN set -ex \
&& rm -fr /usr/src/PROJ

# geos
ENV GEOS_GIT_HASH e308bf7a0dddb6842dc2ac73b5fd5c8a5c599263
ENV GEOS_GIT_HASH 3bdeea5375b13c4f57da6e9e399b2c4e39540737
RUN set -ex \
&& cd /usr/src \
&& git clone https://github.com/libgeos/geos.git \
Expand All @@ -166,7 +166,7 @@ RUN set -ex \
&& rm -fr /usr/src/geos

# gdal
ENV GDAL_GIT_HASH 47b7f08a542c4b589b17f3a2856ded74ba421d9b
ENV GDAL_GIT_HASH eaa0f9610e524c4b7eb2c75456105343533883db
RUN set -ex \
&& cd /usr/src \
&& git clone https://github.com/OSGeo/gdal.git \
Expand Down Expand Up @@ -300,10 +300,10 @@ COPY --from=builder /usr/local /usr/local
ARG CGAL_GIT_BRANCH
ENV CGAL_GIT_BRANCH=${CGAL_GIT_BRANCH}
ENV CGAL_GIT_HASH b2ba32307c065676668ec24383d54ee94ec9f402
ENV SFCGAL_GIT_HASH 6b64fbd4d55b20887aa12ffafd848b05629577cc
ENV PROJ_GIT_HASH 27dfb11f26cae01db9b7981da7d184cfd3a50e50
ENV GEOS_GIT_HASH e308bf7a0dddb6842dc2ac73b5fd5c8a5c599263
ENV GDAL_GIT_HASH 47b7f08a542c4b589b17f3a2856ded74ba421d9b
ENV SFCGAL_GIT_HASH 6856ef9ec1e8a80344b6a99dfdc607c451f54ebc
ENV PROJ_GIT_HASH ff43c46b19802f5953a1546b05f59c5b9ee65795
ENV GEOS_GIT_HASH 3bdeea5375b13c4f57da6e9e399b2c4e39540737
ENV GDAL_GIT_HASH eaa0f9610e524c4b7eb2c75456105343533883db

# Minimal command line test ( fail fast )
RUN set -ex \
Expand All @@ -322,7 +322,7 @@ RUN set -ex \
|| echo "ogr2ogr missing PostgreSQL driver" && exit 1

# install postgis
ENV POSTGIS_GIT_HASH 7c8cfe07df65efa1c5a715ad69fbdec06413ed2f
ENV POSTGIS_GIT_HASH a44991cf3c2059d48be92a6d4edbc2d58575736f

RUN set -ex \
&& apt-get update \
Expand Down
28 changes: 28 additions & 0 deletions 18beta3-3.5/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#
# NOTE: THIS DOCKERFILE IS GENERATED VIA "make update"! PLEASE DO NOT EDIT IT DIRECTLY.
#

FROM postgres:18beta3-trixie

LABEL maintainer="PostGIS Project - https://postgis.net" \
org.opencontainers.image.description="PostGIS 3.5.3+dfsg-1~exp1.pgdg130+1 spatial database extension with PostgreSQL 18beta3 trixie" \
org.opencontainers.image.source="https://github.com/postgis/docker-postgis"

ENV POSTGIS_MAJOR 3
ENV POSTGIS_VERSION 3.5.3+dfsg-1~exp1.pgdg130+1

RUN apt-get update \
&& apt-cache showpkg postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR \
&& apt-get install -y --no-install-recommends \
# ca-certificates: for accessing remote raster files;
# fix: https://github.com/postgis/docker-postgis/issues/307
ca-certificates \
\
postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR=$POSTGIS_VERSION \
postgresql-$PG_MAJOR-postgis-$POSTGIS_MAJOR-scripts \
&& rm -rf /var/lib/apt/lists/*

RUN mkdir -p /docker-entrypoint-initdb.d
COPY ./initdb-postgis.sh /docker-entrypoint-initdb.d/10_postgis.sh
COPY ./update-postgis.sh /usr/local/bin

Loading