name: oo services: # ── core profile ────────────────────────────────────────────────────────── api: build: context: ../.. dockerfile: infra/docker/Dockerfile.api profiles: [core, full] env_file: ../../.env.local environment: DATABASE_PATH: /data/oo.db PORT: "3001" NODE_ENV: production volumes: - api-data:/data ports: - "3001:3001" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3001/health"] interval: 10s timeout: 5s retries: 5 web: build: context: ../.. dockerfile: infra/docker/Dockerfile.web profiles: [core, full] env_file: ../../.env.local environment: NEXT_PUBLIC_API_URL: "" # rewrites proxy to /api, no cross-origin needed in prod ports: - "3000:3000" depends_on: api: condition: service_healthy # ── full profile ────────────────────────────────────────────────────────── ml-serving: build: context: ../.. dockerfile: infra/docker/Dockerfile.ml profiles: [full] ports: - "8000:8000" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 10s timeout: 5s retries: 5 volumes: api-data: