# Prod overlay — load explicitly: # docker compose -f docker-compose.yml -f docker-compose.prod.yml --env-file .env.prod up -d --build # # No ports: (prod is expected to sit behind a reverse proxy / firewalled # network) and no depends_on: — on a split deployment (control-api on one # host, prober/validator-agent on others) control-api's profile is not even # part of that host's compose invocation, and depends_on on an inactive # profile is a hard `docker compose config` error. restart: unless-stopped # is the substitute safety net for the startup-order race (see RUN.txt / # README): prober and validator-agent exit on a failed one-shot # registration, so they get restarted until control-api is reachable. services: control-api: restart: unless-stopped volumes: - ${CONTROL_API_CONFIG_PATH:-/etc/cloud-ip-validator/UNCONFIGURED-control-api.yaml}:/etc/cloud-ip-validator/control-api.yaml:ro environment: OS_AUTH_URL: "${OS_AUTH_URL:-}" OS_PROJECT_ID: "${OS_PROJECT_ID:-}" OS_REGION_NAME: "${OS_REGION_NAME:-}" OS_INTERFACE: "${OS_INTERFACE:-}" OS_TOKEN: "${OS_TOKEN:-}" OS_USERNAME: "${OS_USERNAME:-}" OS_USER_DOMAIN_NAME: "${OS_USER_DOMAIN_NAME:-}" OS_PASSWORD: "${OS_PASSWORD:-}" admin-dashboard: restart: unless-stopped prober: restart: unless-stopped validator-agent: restart: unless-stopped