Files
docs/.claude/agent-memory/directus-devops-architect/reference_timescaledb_ha.md
T

1.6 KiB

name, description, type
name description type
TimescaleDB-HA Docker image facts Empirically verified facts about timescale/timescaledb-ha used in TRM compose files reference

TimescaleDB-HA Docker image facts

CORRECTED after task 1.1 live boot (2026-05-01).

  • Image pinned in TRM: timescale/timescaledb-ha:pg16.6-ts2.17.2-all
    • :pg16-latest does NOT exist on Docker Hub — it 404s at pull time.
    • The -all suffix here means "all extensions bundled" (TimescaleDB + PostGIS + more), NOT "all PG versions".
    • Always pin a concrete pgX.Y-tsA.B.C-all tag; floating tags are unreliable for this image.
  • PGDATA directory: /home/postgres/pgdata/data
    • NOT /pgdata, NOT /var/lib/postgresql/data.
    • Setting PGDATA=/pgdata and mounting a volume to /pgdata causes initdb to fail with "could not change permissions of directory".
    • compose.dev.yaml correctly sets PGDATA: /home/postgres/pgdata/data and mounts to the same path.
  • PostGIS: Binaries are bundled in the -all image but the extension is NOT auto-created on user databases.
    • Directus logs a benign warning: PostGIS isn't installed. Geometry type support will be limited.
    • Must be created explicitly: CREATE EXTENSION IF NOT EXISTS postgis; — lands in db-init Phase 2.
  • Environment variables: POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB (same as official postgres image).
  • Healthcheck: pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB (double-$ in compose YAML to escape interpolation).
  • psql / pg_isready in the Directus container: Installed via apk add --no-cache postgresql16-client in the Dockerfile (task 1.1). Available on PATH at runtime.