Skip to content
Merged
Show file tree
Hide file tree
Changes from 24 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
20 changes: 13 additions & 7 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,22 +37,28 @@ jobs:
variant: default
runner-platform: 'ubuntu-24.04-arm'
- postgres: 17
postgis: '3.6.0beta1'
postgis: '3.6'
variant: alpine
runner-platform: 'ubuntu-24.04'
- postgres: 17
postgis: '3.6.0beta1'
postgis: '3.6'
variant: alpine
runner-platform: 'ubuntu-24.04-arm'


name: Build docker image for ${{ matrix.postgres }}-${{ matrix.postgis }} variant ${{ matrix.variant }} on ${{ matrix.runner-platform }}
- postgres: 18beta3
postgis: '3.6'
variant: alpine
runner-platform: 'ubuntu-24.04'
- postgres: 18beta3
postgis: '3.6'
variant: alpine
runner-platform: 'ubuntu-24.04-arm'
name: ${{ matrix.postgres }}-${{ matrix.postgis }}-${{ matrix.variant }} ${{ matrix.runner-platform }} - Build Docker image
runs-on: ${{ matrix.runner-platform }}
continue-on-error: ${{ matrix.postgis == 'master' }}
env:
VERSION: ${{ matrix.postgres }}-${{ matrix.postgis }}
VARIANT: ${{ matrix.variant }}
DOCKER_APT_PKG_VER: '5:28.3.2-1~ubuntu.24.04~noble'
DOCKER_APT_PKG_VER: '5:28.3.3-1~ubuntu.24.04~noble'

steps:
- name: Install/config specific version of Docker packages
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 affd8ea0c16d624180e682f9e956c5964dfcadd9
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 080fd7ae4a4e5beb31fcd12b2bae025ee15fd19b
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 081119ff2b10fcfa85dba7733b9f6dded8624075
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 affd8ea0c16d624180e682f9e956c5964dfcadd9
ENV PROJ_GIT_HASH 080fd7ae4a4e5beb31fcd12b2bae025ee15fd19b
ENV GEOS_GIT_HASH 3bdeea5375b13c4f57da6e9e399b2c4e39540737
ENV GDAL_GIT_HASH 081119ff2b10fcfa85dba7733b9f6dded8624075

# 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 03f08a1f6e2162ba975f9a00a4d0975dc96db456

RUN set -ex \
&& apt-get update \
Expand Down
File renamed without changes.
6 changes: 3 additions & 3 deletions 17-3.6.0beta1/alpine/Dockerfile → 17-3.6/alpine/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ ARG BASE_IMAGE=postgres:17-alpine3.22
FROM ${BASE_IMAGE}

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

ENV POSTGIS_VERSION 3.6.0beta1
ENV POSTGIS_SHA256 fb38afeae97455202b81312245a82809a16787ee379e5e497ce813fa2c878ade
ENV POSTGIS_VERSION 3.6.0
ENV POSTGIS_SHA256 a2308e6b64f48b6985285bdfa40ddeb8eaa0630f3f1fdb92b487d49562fdcafd

RUN set -eux \
&& apk add --no-cache --virtual .fetch-deps \
Expand Down
File renamed without changes.
File renamed without changes.
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 affd8ea0c16d624180e682f9e956c5964dfcadd9
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 080fd7ae4a4e5beb31fcd12b2bae025ee15fd19b
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 081119ff2b10fcfa85dba7733b9f6dded8624075
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 affd8ea0c16d624180e682f9e956c5964dfcadd9
ENV PROJ_GIT_HASH 080fd7ae4a4e5beb31fcd12b2bae025ee15fd19b
ENV GEOS_GIT_HASH 3bdeea5375b13c4f57da6e9e399b2c4e39540737
ENV GDAL_GIT_HASH 081119ff2b10fcfa85dba7733b9f6dded8624075

# 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 03f08a1f6e2162ba975f9a00a4d0975dc96db456

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-2.pgdg13+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-2.pgdg13+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

124 changes: 124 additions & 0 deletions 18beta3-3.5/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:18beta3-alpine3.22
FROM ${BASE_IMAGE}

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

ENV POSTGIS_VERSION 3.5.3
ENV POSTGIS_SHA256 44222ed2b8f742ffc1ceb429b09ebb484c7880f9ba27bf7b6b197346cdd25437

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 18beta3-3.5/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 18beta3-3.5/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
Loading
Loading