Files
computer-playbook/roles/svc-db-postgres/meta/services.yml
kevinveenbirkenbach 30417d2515 fix(svc-db-postgres): build on the official multi-arch postgres 18 image
postgis/postgis publishes amd64 only, so every postgres consumer failed
on arm64. The official postgres image serves both architectures and
already ships the contrib extensions bloom, pg_trgm and unaccent.

PostGIS moves into the postgres_libraries registry and is installed from
PGDG (postgresql-18-postgis-3) only for a consumer that declares it as
an extension, which is mobilizon alone. apt update reads every source
list again, because the PostGIS package depends on GDAL from Debian
main, which a PGDG-only update left without an install candidate.

Postgres 18 keeps its cluster in /var/lib/postgresql/18/docker and its
entrypoint treats a volume at the former /var/lib/postgresql/data as an
old database, so the central and the dedicated data volume both mount at
/var/lib/postgresql. Existing 17 clusters are not migrated: their data
directory trips the entrypoint's old-data check and the container
refuses to start.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
(cherry picked from commit f78ebe46a4)
2026-10-01 22:19:09 +02:00

44 lines
1.1 KiB
YAML

---
postgres:
modes:
compose:
enabled: true
swarm:
enabled: true
# nocheck: default-placement-manager central RDBMS, single-node until multi-replica replication (streaming / logical) is in scope
placement: manager
bond: 1
enabled: true
shared: true
healthcheck:
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1"]
image: postgres
name: postgres
version: "18"
custom: true
min_storage: 419MB
backup:
database_routine: true
cpus: "2.0"
mem_reservation: 3g
mem_limit: 6g
pids_limit: 1024
exposed: false
ports:
local:
postgres: 5432
internal:
postgres: 5432
lifecycle: beta
# nocheck: variants-coverage — sso-variant-tor requires the onion on in every variant, so the false polarity has no variant left to live in
tor:
bond: 0.5
enabled: "{{ 'svc-net-tor' in group_names }}"
shared: true # nocheck: dynamic-flag
# nocheck: playwright-service-flag, dynamic-flag infrastructure backup consumer
container_backup: # nocheck: bond-baseline backup host joins outside the variant topology
bond: 1
enabled: "{{ 'svc-bkp-volume-2-local' in group_names }}"
shared: true