didi-lot1-ai/ai_platform/modules/web/deploy/docker-compose.yml

53 lines
1.7 KiB
YAML

# Web Module - Docker Compose Configuration
#
# Port Allocation (Dev API Gateway: 51100):
# 51100 - Web API (fact-checking service)
#
# Naming Convention: didiAI-{module}-{service}
#
# Profiles:
# api - Web API server
networks:
didi-network:
external: true # single shared network for all DIDI + AI platform stacks
services:
# ==========================================================================
# Web API Server
# ==========================================================================
web-api:
container_name: didiAI-web-api
image: didiai-web-api
build:
context: ..
dockerfile: deploy/Dockerfile
ports:
- "51100:51100"
shm_size: '2gb'
networks:
- didi-network
env_file:
- .env
environment:
# Container-internal overrides (always set regardless of .env)
- WEB_HOST=0.0.0.0
- WEB_PORT=51100
# Tier-3 search fallback (cloak stealth-browser scraping service).
# Default OFF; flip to true once cloak service is verified healthy.
- WEB_CLOAK_ENABLED=${WEB_CLOAK_ENABLED:-false}
- WEB_CLOAK_URL=${WEB_CLOAK_URL:-http://didiAI-cloak:8770}
- WEB_CLOAK_FALLBACK_THRESHOLD=${WEB_CLOAK_FALLBACK_THRESHOLD:-5}
- WEB_CLOAK_TIMEOUT_SEC=${WEB_CLOAK_TIMEOUT_SEC:-20}
# OTel — traces to Jaeger via OTel Collector
- OTEL_EXPORTER_OTLP_ENDPOINT=${OTEL_EXPORTER_OTLP_ENDPOINT:-http://didi-otel-collector:4317}
- OTEL_SERVICE_NAME=didiAI-web-api
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:51100/health')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
restart: unless-stopped
profiles:
- api