services: backend: image: open-ai-canvas-backend:local build: context: . dockerfile: backend/Dockerfile args: GOPROXY: ${GOPROXY:-https://goproxy.cn,direct} environment: CANVAS_BACKEND_ADDR: ":8080" CANVAS_BACKEND_DATA_DIR: /data CANVAS_SHUTDOWN_TIMEOUT: ${CANVAS_SHUTDOWN_TIMEOUT:-10m} CANVAS_DATABASE_DRIVER: ${CANVAS_DATABASE_DRIVER:-sqlite} DATABASE_URL: ${DATABASE_URL:-} REDIS_URL: ${REDIS_URL:-} CANVAS_WORKER_CONCURRENCY: ${CANVAS_WORKER_CONCURRENCY:-3} CANVAS_CHANNEL_CONCURRENCY: ${CANVAS_CHANNEL_CONCURRENCY:-3} CANVAS_REGISTRATION_ENABLED: ${CANVAS_REGISTRATION_ENABLED:-false} CANVAS_ALLOW_PRIVATE_UPSTREAMS: ${CANVAS_ALLOW_PRIVATE_UPSTREAMS:-false} CANVAS_ALLOWED_PRIVATE_UPSTREAM_HOSTS: ${CANVAS_ALLOWED_PRIVATE_UPSTREAM_HOSTS:-} CANVAS_CORS_ORIGINS: ${CANVAS_CORS_ORIGINS:-http://localhost:7380} # 服务器访问地址:Agent 看图与生成参考图都靠它签发上游可取到的短时链接。 CANVAS_PUBLIC_BASE_URL: ${CANVAS_PUBLIC_BASE_URL:-} ENABLE_PROVIDER_PLUGINS: ${ENABLE_PROVIDER_PLUGINS:-false} CANVAS_LOG_LEVEL: ${CANVAS_LOG_LEVEL:-info} CANVAS_LOG_FORMAT: ${CANVAS_LOG_FORMAT:-text} GIN_MODE: release volumes: - backend-data:/data restart: unless-stopped stop_grace_period: ${CANVAS_SHUTDOWN_TIMEOUT:-10m} develop: watch: - action: rebuild path: ./backend ignore: - data/ web: image: open-ai-canvas-web:local build: context: . dockerfile: Dockerfile ports: - "7380:3000" volumes: - web-data:/usr/share/nginx/html depends_on: backend: condition: service_healthy restart: unless-stopped develop: watch: - action: rebuild path: ./web ignore: - node_modules/ - dist/ - tsconfig.tsbuildinfo - action: rebuild path: ./Dockerfile - action: rebuild path: ./nginx.conf - action: rebuild path: ./VERSION - action: rebuild path: ./CHANGELOG.md volumes: backend-data: web-data: