diff --git a/docs/backup-export.md b/docs/backup-export.md index 991ca3e..cdb73a9 100644 --- a/docs/backup-export.md +++ b/docs/backup-export.md @@ -29,8 +29,10 @@ changes, PostgreSQL roles and cluster settings, Redis and deployment files are n - `pg_dump` must be in the **same runtime** as the exporter (the CLI's environment, or the server's PATH for the download), with a major version at least as new as the database's. A client on the Docker host or in another container doesn't count. -- The Docker image ships the PostgreSQL 16 client. Its Alpine 3.19 base has no 17/18 - packages, so a newer database needs a different runtime, not just `POSTGRES_CLIENT_MAJOR`. +- The published Docker image ships the PostgreSQL 16 client on an Alpine 3.24 base. For a + PostgreSQL 17 or 18 database, build your own image from a beacon-server checkout, e.g. + `docker build -f .build/Dockerfile --build-arg POSTGRES_CLIENT_MAJOR=17 -t beacon:pg17 .`, + and point the stack's `image:` at that tag. - The temp directory (`TMPDIR`) needs about twice the SQL limit free. A small tmpfs won't do. - The output filesystem must support hard links (used to publish atomically). Existing destinations, symlinks included, are never replaced. Files are 0600 and staging dirs 0700; diff --git a/docs/upgrading.md b/docs/upgrading.md index f20c4e7..006e835 100644 --- a/docs/upgrading.md +++ b/docs/upgrading.md @@ -333,6 +333,13 @@ instead of an `ERROR` pair; a real `500` still logs `api: error 500: ` with the database error in `error`. Only pages that read a read model count timeouts in `beacon_api_unavailable_total{reason="timeout"}`. +#### Runtime image on Alpine 3.24 + +The server image moved from Alpine 3.19, which is out of support, to Alpine 3.24 with the +PostgreSQL 16 client tools. Nothing to change for a PostgreSQL 16 database. A self-built image +with `POSTGRES_CLIENT_MAJOR=17` or `18` now works too; see +[Backup export](backup-export.md). + ## Changes that need a restart Beacon reads `config.yaml` once at startup. After editing it, run