services: # Local development database. This is the ONLY database local dev and the # test suite should ever touch — never point DATABASE_URL at the production # Neon instance for local work (see the guard in scripts/guard-dev-db.mjs). postgres: # Pinned to match the production Neon major version (17), so pg_dump/restore # from prod (see `pnpm db:pull`) works without version mismatches. image: postgres:17-alpine restart: unless-stopped environment: POSTGRES_USER: teqo POSTGRES_PASSWORD: teqo POSTGRES_DB: teqo ports: - '5432:5432' volumes: - pgdata:/var/lib/postgresql/data # Runs only on first initialization of the volume. Creates the dedicated # teqo_test database so automated tests never share state with dev data. - ./docker/postgres/init:/docker-entrypoint-initdb.d:ro healthcheck: test: ['CMD-SHELL', 'pg_isready -U teqo -d teqo'] interval: 5s timeout: 5s retries: 10 volumes: pgdata: