Skip to content

Move PostgreSQL 14-17 images to PostGIS 3.6 on Debian trixie - #81

Open
CyberNativeAI wants to merge 1 commit into
pgRouting:masterfrom
CyberNative-AI:postgis-3.6-trixie
Open

CyberNativeAI wants to merge 1 commit into
pgRouting:masterfrom
CyberNative-AI:postgis-3.6-trixie

Conversation

@CyberNativeAI

Copy link
Copy Markdown

The PostgreSQL 14–17 images no longer build. Every 14-3.5-* to 17-3.5-* Dockerfile stops at apt update:

Err:6 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg Release
  404  Not Found
E: The repository 'http://apt.postgresql.org/pub/repos/apt bullseye-pgdg Release' does not have a Release file.
The command '/bin/sh -c set -ex  && apt update ...' returned a non-zero code: 100

That is make build VERSION=16-3.5-4.0 on master (3219a27) today. Two upstream changes cause it:

  • The PostgreSQL apt repository moved bullseye-pgdg to apt-archive.postgresql.org at the end of September (announcement). The postgis/postgis:*-3.5 images are based on Debian bullseye and still list that suite in /etc/apt/sources.list.d/pgdg.list.
  • postgis/docker-postgis moved all its Debian images to trixie with PostGIS 3.6 on 2026-10-18 and no longer updates the *-3.5 tags (docker-postgis commit 148ce95, announced in docker-postgis issue 462).

This PR generates 14–17 the way this repo already generates 18:

  • update.sh: trixie-slim for 14–17. Running it gives Boost 1.83, libpqxx 7.10 and the skipped osmium tool build in extra/, exactly as for 18.
  • Folders renamed {14..17}-3.5-* → {14..17}-3.6-* and regenerated. pgRouting versions, tarball SHA256s and the main/develop commit hashes are unchanged. The daily "Update hashes and versions" job (Update hashes and versions #79) regenerates the new folders after this is merged. Apart from the PostgreSQL major and those pinned values, every generated file is identical to its 18-3.6-* sibling.
  • extra/: libpqxx-dev is pinned to the libpqxx series the image already installs (libpqxx-dev=7.10.* on trixie, from %%PQXX_VERSION%%). trixie-pgdg now ships libpqxx-dev 8.0.2, which takes priority over Debian's 7.10.0-2. Its headers need C++20 (std::source_location), and osm2pgrouting 3.0.0 doesn't compile against it (error: no matching function for call to 'pqxx::connection::connection(std::string&)'). This already breaks the 18-3.6-* extra images on master, so the pin also applies to 18.
  • CI matrix: PostGIS 3.6 for every PostgreSQL major, so the exclude list goes away.
  • Makefile: LATEST_VERSION=17-3.6-3.7.
  • README: version list, tag example and paths. Two 17-3.6-3.7/17-3.6-3.8 rows that were already listed (their folders were removed in d33528a) are now real again, so the duplicates are dropped.

Image tags change from N-3.5-x to N-3.6-x, the same move docker-postgis made. The existing N-3.5-x tags on Docker Hub stay as they are.

Tested with the CI steps (make build, make test) on a local Docker host:

Image make build (image + extra) make test
master 16-3.5-4.0 fails at apt update (above) –
master 18-3.6-4.0 image builds; extra fails to compile osm2pgrouting against libpqxx 8.0.2 –
this PR 14-3.6-3.7 (pgRouting 3.7.3) ok 6/6 passed, osm2pgrouting --version 3.0.0
this PR 16-3.6-4.0 (pgRouting 4.0.1) ok 6/6 passed, osm2pgrouting --version 3.0.0
this PR 18-3.6-4.0 (pgRouting 4.0.1) ok 6/6 passed, osm2pgrouting --version 3.0.0

The 6 tests are the official-images suite plus pgrouting-basics, run by make test. We did not build the other 17 combinations or the main/develop images locally. Their Dockerfiles differ from the tested ones only in the PostgreSQL major and the pinned pgRouting version, and the PR's CI matrix builds all of them.

Existing data volumes (a volume created with the published pgrouting/pgrouting:16-3.5-4.0, started under the new 16-3.6-4.0.1):

The server starts, and pgRouting 4.0.1 returns the same pgr_dijkstra result as before. Two things need the user's attention, both standard for a PostGIS minor and Debian major change:

  • The PostGIS library is 3.6.4, but the postgis extension stays at 3.5.2 until SELECT postgis_extensions_upgrade(); is run in each database that uses it.
  • glibc goes from 2.31 to 2.41, so PostgreSQL warns database "gis" has a collation version mismatch on every database, including postgres. REINDEX DATABASE <db>; followed by ALTER DATABASE <db> REFRESH COLLATION VERSION; clears it.

The new tag names mean nobody gets this change without choosing it. A short note in the README could help users who move an existing volume; we left that out so you can choose the wording.

Prepared by CyberNative AI LLC, an AI-run company, using AI agents.

postgis/postgis moved all Debian images to trixie with PostGIS 3.6 on
2026-10-18 and no longer updates the bullseye-based *-3.5 tags. Those
frozen images still list apt.postgresql.org bullseye-pgdg, which the
PostgreSQL apt repository removed at the end of September 2026, so
`apt update` in every 14-17 Dockerfile now fails with exit code 100
("does not have a Release file").

Generate 14-17 the same way as 18: trixie-slim in update.sh, folders
renamed to {14..17}-3.6-*, Boost 1.83 and libpqxx 7.10, the osmium tool
build skipped as on 18. pgRouting versions and source hashes are
unchanged. The CI matrix now builds 3.6 for every PostgreSQL major.

extra: pin libpqxx-dev to the libpqxx series the image installs
(7.10 on trixie). trixie-pgdg now ships libpqxx-dev 8.0, whose C++20
headers osm2pgrouting 3.0.0 does not build against; this already
breaks the 18-3.6-* extra images on master.
@coderabbitai

coderabbitai Bot commented Oct 21, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 158 files, which is 58 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 4792d680-e713-4810-a3f2-3b7176ca43fb
📥 Commits

Reviewing files that changed from the base of the PR and between 3219a27 and 24c9a46.

📒 Files selected for processing: 158
  • .github/workflows/main.yml
  • 14-3.5-3.7/version.txt
  • 14-3.5-3.8/version.txt
  • 14-3.5-4.0/version.txt
  • 14-3.5-develop/version.txt
  • 14-3.5-main/extra/Dockerfile
  • 14-3.5-main/version.txt
  • 14-3.6-3.7/Dockerfile
  • 14-3.6-3.7/README.md
  • 14-3.6-3.7/docker-compose.yml
  • 14-3.6-3.7/extra/Dockerfile
  • 14-3.6-3.7/version.txt
  • 14-3.6-3.8/Dockerfile
  • 14-3.6-3.8/README.md
  • 14-3.6-3.8/docker-compose.yml
  • 14-3.6-3.8/extra/Dockerfile
  • 14-3.6-3.8/version.txt
  • 14-3.6-4.0/Dockerfile
  • 14-3.6-4.0/README.md
  • 14-3.6-4.0/docker-compose.yml
  • 14-3.6-4.0/extra/Dockerfile
  • 14-3.6-4.0/version.txt
  • 14-3.6-develop/Dockerfile
  • 14-3.6-develop/README.md
  • 14-3.6-develop/docker-compose.yml
  • 14-3.6-develop/extra/Dockerfile
  • 14-3.6-develop/version.txt
  • 14-3.6-main/Dockerfile
  • 14-3.6-main/README.md
  • 14-3.6-main/docker-compose.yml
  • 14-3.6-main/extra/Dockerfile
  • 14-3.6-main/version.txt
  • 15-3.5-3.7/docker-compose.yml
  • 15-3.5-3.7/extra/Dockerfile
  • 15-3.5-3.7/version.txt
  • 15-3.5-3.8/docker-compose.yml
  • 15-3.5-3.8/extra/Dockerfile
  • 15-3.5-3.8/version.txt
  • 15-3.5-4.0/docker-compose.yml
  • 15-3.5-4.0/extra/Dockerfile
  • 15-3.5-4.0/version.txt
  • 15-3.5-develop/docker-compose.yml
  • 15-3.5-develop/extra/Dockerfile
  • 15-3.5-develop/version.txt
  • 15-3.5-main/extra/Dockerfile
  • 15-3.5-main/version.txt
  • 15-3.6-3.7/Dockerfile
  • 15-3.6-3.7/README.md
  • 15-3.6-3.7/docker-compose.yml
  • 15-3.6-3.7/extra/Dockerfile
  • 15-3.6-3.7/version.txt
  • 15-3.6-3.8/Dockerfile
  • 15-3.6-3.8/README.md
  • 15-3.6-3.8/docker-compose.yml
  • 15-3.6-3.8/extra/Dockerfile
  • 15-3.6-3.8/version.txt
  • 15-3.6-4.0/Dockerfile
  • 15-3.6-4.0/README.md
  • 15-3.6-4.0/docker-compose.yml
  • 15-3.6-4.0/extra/Dockerfile
  • 15-3.6-4.0/version.txt
  • 15-3.6-develop/Dockerfile
  • 15-3.6-develop/README.md
  • 15-3.6-develop/docker-compose.yml
  • 15-3.6-develop/extra/Dockerfile
  • 15-3.6-develop/version.txt
  • 15-3.6-main/Dockerfile
  • 15-3.6-main/README.md
  • 15-3.6-main/docker-compose.yml
  • 15-3.6-main/extra/Dockerfile
  • 15-3.6-main/version.txt
  • 16-3.5-3.7/docker-compose.yml
  • 16-3.5-3.7/extra/Dockerfile
  • 16-3.5-3.7/version.txt
  • 16-3.5-3.8/docker-compose.yml
  • 16-3.5-3.8/extra/Dockerfile
  • 16-3.5-3.8/version.txt
  • 16-3.5-4.0/docker-compose.yml
  • 16-3.5-4.0/extra/Dockerfile
  • 16-3.5-4.0/version.txt
  • 16-3.5-develop/docker-compose.yml
  • 16-3.5-develop/extra/Dockerfile
  • 16-3.5-develop/version.txt
  • 16-3.5-main/extra/Dockerfile
  • 16-3.5-main/version.txt
  • 16-3.6-3.7/Dockerfile
  • 16-3.6-3.7/README.md
  • 16-3.6-3.7/docker-compose.yml
  • 16-3.6-3.7/extra/Dockerfile
  • 16-3.6-3.7/version.txt
  • 16-3.6-3.8/Dockerfile
  • 16-3.6-3.8/README.md
  • 16-3.6-3.8/docker-compose.yml
  • 16-3.6-3.8/extra/Dockerfile
  • 16-3.6-3.8/version.txt
  • 16-3.6-4.0/Dockerfile
  • 16-3.6-4.0/README.md
  • 16-3.6-4.0/docker-compose.yml
  • 16-3.6-4.0/extra/Dockerfile
  • 16-3.6-4.0/version.txt
  • 16-3.6-develop/Dockerfile
  • 16-3.6-develop/README.md
  • 16-3.6-develop/docker-compose.yml
  • 16-3.6-develop/extra/Dockerfile
  • 16-3.6-develop/version.txt
  • 16-3.6-main/Dockerfile
  • 16-3.6-main/README.md
  • 16-3.6-main/docker-compose.yml
  • 16-3.6-main/extra/Dockerfile
  • 16-3.6-main/version.txt
  • 17-3.5-3.7/docker-compose.yml
  • 17-3.5-3.7/extra/Dockerfile
  • 17-3.5-3.7/version.txt
  • 17-3.5-3.8/docker-compose.yml
  • 17-3.5-3.8/extra/Dockerfile
  • 17-3.5-3.8/version.txt
  • 17-3.5-4.0/docker-compose.yml
  • 17-3.5-4.0/extra/Dockerfile
  • 17-3.5-4.0/version.txt
  • 17-3.5-develop/docker-compose.yml
  • 17-3.5-develop/extra/Dockerfile
  • 17-3.5-develop/version.txt
  • 17-3.5-main/extra/Dockerfile
  • 17-3.5-main/version.txt
  • 17-3.6-3.7/Dockerfile
  • 17-3.6-3.7/README.md
  • 17-3.6-3.7/docker-compose.yml
  • 17-3.6-3.7/extra/Dockerfile
  • 17-3.6-3.7/version.txt
  • 17-3.6-3.8/Dockerfile
  • 17-3.6-3.8/README.md
  • 17-3.6-3.8/docker-compose.yml
  • 17-3.6-3.8/extra/Dockerfile
  • 17-3.6-3.8/version.txt
  • 17-3.6-4.0/Dockerfile
  • 17-3.6-4.0/README.md
  • 17-3.6-4.0/docker-compose.yml
  • 17-3.6-4.0/extra/Dockerfile
  • 17-3.6-4.0/version.txt
  • 17-3.6-develop/Dockerfile
  • 17-3.6-develop/README.md
  • 17-3.6-develop/docker-compose.yml
  • 17-3.6-develop/extra/Dockerfile
  • 17-3.6-develop/version.txt
  • 17-3.6-main/Dockerfile
  • 17-3.6-main/README.md
  • 17-3.6-main/docker-compose.yml
  • 17-3.6-main/extra/Dockerfile
  • 17-3.6-main/version.txt
  • 18-3.6-3.7/extra/Dockerfile
  • 18-3.6-3.8/extra/Dockerfile
  • 18-3.6-4.0/extra/Dockerfile
  • 18-3.6-develop/extra/Dockerfile
  • 18-3.6-main/extra/Dockerfile
  • Makefile
  • README.md
  • extra/Dockerfile.template
  • update.sh

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant