services: db: image: postgres:16 environment: POSTGRES_DB: ${POSTGRES_DB:?} POSTGRES_USER: ${POSTGRES_USER:?} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} ports: - "${PGPORT:?}:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 2s timeout: 2s retries: 30 postgrest: image: postgrest/postgrest:v12.2.12 depends_on: db: condition: service_healthy environment: PGRST_DB_URI: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB} PGRST_DB_SCHEMAS: public PGRST_DB_ANON_ROLE: ${POSTGRES_USER} PGRST_SERVER_PORT: 3000 ports: - "${POSTGREST_PORT:?}:3000"