services: postgres: image: postgres:16-alpine environment: POSTGRES_USER: aigw POSTGRES_PASSWORD: aigw POSTGRES_DB: aigw ports: - "127.0.0.1:5432:5432" volumes: - aigw-postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U aigw -d aigw"] interval: 5s timeout: 3s retries: 20 redis: image: redis:7-alpine ports: - "127.0.0.1:6379:6379" volumes: - aigw-redis:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 20 aigw: image: aigw-debug:local build: . depends_on: postgres: condition: service_healthy ports: - "127.0.0.1:8080:8080" environment: AIGW_DATABASE_URL: postgres://aigw:aigw@postgres:5432/aigw?sslmode=disable AIGW_REDIS_URL: redis://redis:6379/0 AIGW_CREDENTIAL_KEY: ${AIGW_CREDENTIAL_KEY:?set AIGW_CREDENTIAL_KEY} AIGW_ADMIN_TOKEN: ${AIGW_ADMIN_TOKEN:?set AIGW_ADMIN_TOKEN} AIGW_STRIPE_API_KEY: ${AIGW_STRIPE_API_KEY:?set AIGW_STRIPE_API_KEY} AIGW_STRIPE_WEBHOOK_SECRET: ${AIGW_STRIPE_WEBHOOK_SECRET:?set AIGW_STRIPE_WEBHOOK_SECRET} volumes: - ./config.control.example.json:/etc/aigw/config.json:ro healthcheck: test: ["CMD", "wget", "-q", "-O", "-", "http://127.0.0.1:8080/readyz"] interval: 3s timeout: 2s retries: 20 start_period: 5s volumes: aigw-postgres: aigw-redis: