Skip to content
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
d3b1986
feat: Add pg18beta3 container
thomasboussekey Aug 18, 2025
5214678
rename 18 folder
thomasboussekey Aug 18, 2025
8eb6e32
bump to postgis 3.6.0rc1'
thomasboussekey Aug 19, 2025
5cff4dc
refresh images
thomasboussekey Aug 19, 2025
bb126c5
Merge branch 'master' into add_pg18beta2
thomasboussekey Aug 19, 2025
02b0176
Update .github/workflows/main.yml
thomasboussekey Aug 19, 2025
b684706
manual build of 18beta3-3.5/Dockerfile
thomasboussekey Aug 19, 2025
29467b5
Update .github/workflows/main.yml
thomasboussekey Aug 19, 2025
c3fceb7
Add manual Dockerfile for PG 18beta3
thomasboussekey Aug 19, 2025
6be617a
refresh README Versions date
thomasboussekey Aug 19, 2025
af64000
add 18beta3-3.6.0rc1
thomasboussekey Aug 19, 2025
6ac281f
add missing tests
thomasboussekey Aug 19, 2025
25676be
add trixie libbost version
thomasboussekey Aug 20, 2025
114f9eb
update images
thomasboussekey Aug 20, 2025
6cbed5b
removed 18beta3-3.6.0rc1
thomasboussekey Aug 20, 2025
ac7cf42
use manual Dockerfile for 18beta3-3.5
thomasboussekey Aug 20, 2025
258c476
Fix update on 18beta3 and remove Dockerfile.manual logic
thomasboussekey Aug 22, 2025
af2661b
remove previous version from doc
thomasboussekey Aug 23, 2025
53506a4
try minimistic matrix.include entry for workflow
thomasboussekey Aug 23, 2025
1e38c9e
Revert "try minimistic matrix.include entry for workflow"
thomasboussekey Aug 23, 2025
ba5f62c
removing include for 18beta3
thomasboussekey Aug 23, 2025
6b979fb
update to 17-3.6.0rc2 ( alpine )
ImreSamu Aug 30, 2025
428a442
add 18beta3-3.6.0rc2/alpine
ImreSamu Aug 30, 2025
6149fe5
update (17, 18beta3) to postgis 3.6 ( alpine )
ImreSamu Sep 2, 2025
693280c
remove 18beta3-3.5 ; add 18beta3-3.6 debian trixie
ImreSamu Sep 3, 2025
59f2557
Merge branch 'postgis:master' into add_pg18beta2
thomasboussekey Sep 5, 2025
90d4355
improve README.md
thomasboussekey Sep 5, 2025
fde17f9
update to 18rc1 and refresh SHA256 tags
thomasboussekey Sep 7, 2025
3451186
update README.md version
ImreSamu Sep 8, 2025
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
15 changes: 11 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,14 +37,21 @@ 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'

- postgres: 18beta3
postgis: '3.5'
variant: default
runner-platform: 'ubuntu-24.04'
- postgres: 18beta3
postgis: '3.5'
variant: default
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 }}
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