version: '2.3' services: conductor-server: environment: - CONFIG_PROP=config-postgres.properties # Forwarded from the host shell when set. Empty/absent ⇒ the matching AI provider # stays unconfigured and the LLM e2e tests that depend on it self-skip. - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-} - OPENAI_API_KEY=${OPENAI_API_KEY:-} - COHERE_API_KEY=${COHERE_API_KEY:-} image: conductor:server container_name: conductor-server build: context: ../ dockerfile: docker/server/Dockerfile args: YARN_OPTS: ${YARN_OPTS} networks: - internal ports: - 8000:8080 - 8127:5000 healthcheck: test: [ "CMD", "curl","-I" ,"-XGET", "http://localhost:8080/health" ] interval: 60s timeout: 30s retries: 12 links: - conductor-postgres:postgresdb depends_on: conductor-postgres: condition: service_healthy logging: driver: "json-file" options: max-size: "1k" max-file: "3" conductor-postgres: image: postgres:16 environment: - POSTGRES_USER=conductor - POSTGRES_PASSWORD=conductor volumes: - pgdata-conductor:/var/lib/postgresql/data networks: - internal healthcheck: test: timeout 5 bash -c 'cat < /dev/null > /dev/tcp/localhost/5432' interval: 5s timeout: 5s retries: 12 logging: driver: "json-file" options: max-size: "1k" max-file: "3" volumes: pgdata-conductor: driver: local networks: internal: