-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
The layout for PostgreSQL has changed in version 18, leading to the container terminating with the following error:
Error: in 18+, these Docker images are configured to store database data in a
format which is compatible with "pg_ctlcluster" (specifically, using
major-version-specific directory names). This better reflects how
PostgreSQL itself works, and how upgrades are to be performed.
See also https://github.com/docker-library/postgres/pull/1259
Counter to that, there appears to be PostgreSQL data in:
/var/lib/postgresql/data (unused mount/volume)
This is usually the result of upgrading the Docker image without
upgrading the underlying database using "pg_upgrade" (which requires both
versions).
The suggested container configuration for 18+ is to place a single mount
at /var/lib/postgresql which will then place PostgreSQL data in a
subdirectory, allowing usage of "pg_upgrade --link" without mount point
boundary issues.
See https://github.com/docker-library/postgres/issues/37 for a (long)
discussion around this process, and suggestions for how to do so.
The easy fix is changing the volume definition in the docker-compose.yml for the db container to target /var/lib/postgresql instead of /var/lib/postgresql/data.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels