services: xingbang-app: image: ${APP_IMAGE:?Set APP_IMAGE to the full Alibaba Cloud ACR image reference} container_name: mini-openclaw restart: unless-stopped ports: - "127.0.0.1:${FRONTEND_PORT:-80}:3000" - "127.0.0.1:${BACKEND_PORT:-8002}:8002" environment: DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:?Set DEEPSEEK_API_KEY} DEEPSEEK_MODEL: ${DEEPSEEK_MODEL:-deepseek-chat} DEEPSEEK_BASE_URL: ${DEEPSEEK_BASE_URL:-https://api.deepseek.com} CHAT_THINKING_MODE: ${CHAT_THINKING_MODE:-} XINGBANG_DEMO_ROLE_LOGIN: ${XINGBANG_DEMO_ROLE_LOGIN:-0} XINGBANG_DEMO_PROJECTS: ${XINGBANG_DEMO_PROJECTS:-DEMO-A,DEMO-B,DEMO-C,LAB-001,XB-2026-001} ERP_DB_HOST: ${ERP_DB_HOST:-} ERP_DB_PORT: ${ERP_DB_PORT:-5432} ERP_DB_NAME: ${ERP_DB_NAME:-} ERP_DB_USER: ${ERP_DB_USER:-} ERP_DB_PASSWORD: ${ERP_DB_PASSWORD:-} ERP_DB_SSL_MODE: ${ERP_DB_SSL_MODE:-require} RISK_AGENT_BACKEND_URL: http://127.0.0.1:8002 volumes: - xingbang-data:/app/backend/xingbang_data - xingbang-logs:/app/backend/logs healthcheck: test: ["CMD", "node", "-e", "Promise.all([fetch('http://127.0.0.1:3000/'),fetch('http://127.0.0.1:8002/')]).then(rs=>process.exit(rs.every(r=>r.ok)?0:1)).catch(()=>process.exit(1))"] interval: 30s timeout: 5s start_period: 120s retries: 3 volumes: xingbang-data: xingbang-logs: