services:
  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: payments
      POSTGRES_USER: payments
      POSTGRES_PASSWORD: local-development-only
    ports: ['127.0.0.1:5432:5432']
    volumes: [payment-data:/var/lib/postgresql/data]
    healthcheck:
      test: [CMD-SHELL, pg_isready -U payments -d payments]
      interval: 3s
      timeout: 2s
      retries: 20
  keycloak:
    image: quay.io/keycloak/keycloak:26.1.4
    command: [start-dev, --import-realm]
    environment:
      KC_BOOTSTRAP_ADMIN_USERNAME: local-admin
      KC_BOOTSTRAP_ADMIN_PASSWORD: local-admin-only
    ports: ['127.0.0.1:8081:8080']
    volumes: ['./dev/realm.json:/opt/keycloak/data/import/payments-realm.json:ro']
volumes:
  payment-data:
