services:
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: payments
      POSTGRES_USER: payments
      POSTGRES_PASSWORD: ${DB_PASSWORD:?Set DB_PASSWORD for local PostgreSQL}
    ports: ["127.0.0.1:5432:5432"]
    volumes: ["postgres-data:/var/lib/postgresql/data"]
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U payments -d payments"]
      interval: 3s
      timeout: 2s
      retries: 20
  oidc:
    image: quay.io/keycloak/keycloak:26.7.5
    command: ["start-dev", "--import-realm", "--http-port=8081"]
    ports: ["127.0.0.1:8081:8081"]
    volumes: ["./docs/dev-realm.json:/opt/keycloak/data/import/payments.json:ro"]
volumes:
  postgres-data:
