version: '3.8' services: # Flask App Service flask-app: build: context: . dockerfile: Dockerfile.multi target: flask-app ports: - "10345:10345" environment: - CQA_TEST_APP_ENV=prod - CQA_TEST_APP_HTTP_PORT=10345 - JIRA_URL=${JIRA_URL} - JIRA_PERSONAL_TOKEN=${JIRA_PERSONAL_TOKEN} volumes: - ./logs:/app/logs networks: - cqa-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:10345/test"] interval: 30s timeout: 10s retries: 3 # MCP Server Service mcp-server: build: context: . dockerfile: Dockerfile.multi target: mcp-server ports: - "8001:8001" environment: - JIRA_URL=${JIRA_URL} - JIRA_PERSONAL_TOKEN=${JIRA_PERSONAL_TOKEN} depends_on: - flask-app networks: - cqa-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8001/mcp"] interval: 30s timeout: 10s retries: 3 # Monitoring (Prometheus) prometheus: image: prom/prometheus:latest ports: - "9090:9090" volumes: - ./config/prometheus.yml:/etc/prometheus/prometheus.yml networks: - cqa-network # Load Balancer (nginx) nginx: image: nginx:alpine ports: - "80:80" - "443:443" volumes: - ./config/nginx.conf:/etc/nginx/nginx.conf depends_on: - flask-app - mcp-server networks: - cqa-network networks: cqa-network: driver: bridge volumes: logs: prometheus-data: