services: agenteval: build: context: ../.. dockerfile: deploy/t480/Dockerfile container_name: agenteval ports: - "8001:8000" env_file: - path: ../../.env required: false volumes: # Persist SQLite database and generated reports on the host. - ../../data:/app/data # Mount tutu-api configuration (read-only). Ensure config/config.json exists before deploy. - ../../config/config.json:/app/config/config.json:ro # Mount pre-built React frontend dist (read-only). - ../../frontend/web/dist:/app/frontend/web/dist:ro # Mount backend Python code so code changes are picked up without rebuilding. - ../../backend:/app/backend:ro # Mount .env so Pydantic Settings can load deployment-specific config. - ../../.env:/app/.env:ro # Mount Docker socket for managing openclaw-eval container (cron pool). - /var/run/docker.sock:/var/run/docker.sock restart: unless-stopped openclaw-eval: image: ghcr.io/openclaw/openclaw:latest container_name: openclaw-eval ports: - "28789:18789" volumes: - ../../data/openclaw:/home/node/.openclaw environment: - AGENTEVAL_API_URL=http://agenteval:8000 # 注意:不注入 OPENCLAW_GATEWAY_TOKEN。OpenClaw 认证用 trusted-proxy # 模式(与 agenteval 代理的 x-forwarded-user 匹配);若同时注入共享 # token,gateway 会因 trusted-proxy 与 token 互斥而启动失败。 restart: unless-stopped