services: # 内容寻找 Agent 服务 content-finder: image: registry.cn-hangzhou.aliyuncs.com/stuuudy/content-finder-agent:latest build: context: . dockerfile: Dockerfile.content-finder container_name: agent-content-finder restart: unless-stopped ports: - "8080:8080" volumes: - /home/data/trace:/app/.trace - /home/data/output:/app/.output environment: - OPEN_ROUTER_API_KEY=${OPEN_ROUTER_API_KEY} - MODEL=${MODEL:-anthropic/claude-sonnet-4.6} - TEMPERATURE=${TEMPERATURE:-0.3} - MAX_ITERATIONS=${MAX_ITERATIONS:-30} - TRACE_DIR=/app/.trace - OUTPUT_DIR=/app/.output - PORT=8080 - MAX_CONCURRENT_TASKS=${MAX_CONCURRENT_TASKS:-3} healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s # 可视化 API 服务 api-server: image: registry.cn-hangzhou.aliyuncs.com/stuuudy/content-finder-agent-api-server:latest build: context: . dockerfile: Dockerfile.api-server container_name: agent-api-server restart: unless-stopped ports: - "8000:8000" volumes: - /home/data/trace:/app/.trace healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s # 前端服务 frontend: image: registry.cn-hangzhou.aliyuncs.com/stuuudy/content-finder-agent-frontend:latest build: context: . dockerfile: Dockerfile.frontend container_name: agent-frontend restart: unless-stopped ports: - "3000:3000" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000"] interval: 30s timeout: 10s retries: 3 start_period: 10s