# 非 host 版本, 容器内部使用桥接通信 # (各项参数均有详细的说明,理论情况下保持默认即可运行) #version: '3' services: comfyAI-web: container_name: comfyAI-web #更新修改冒号后面的版本号 image: registry.cn-shanghai.aliyuncs.com/comfy-ai/one-ai:${VERSION} #端口冲突时,只需要修改前面的端口比如修改为,3011:3010 labels: - "com.centurylinklabs.watchtower.enable=true" ports: - "${WEB_PORT}:3010" read_only: true networks: comfyai: ipv4_address: 172.21.0.8 depends_on: - comfy-server restart: always environment: # 默认服务器地址,本地不需要更改,云服务需要修改为云端IP,并放行对应端口 - NUXT_PUBLIC_BASE_APIURL=${NUXT_PUBLIC_BASE_APIURL} #增加服务端渲染配置,保持默认即可,不需要修改! - NUXT_PUBLIC_BASE_SSRURL=http://172.21.0.6:3001 # 默认的服务器websocket地址,本地不需要更改,云服务需要修改为云端IP,并放行对应端口 - NUXT_PUBLIC_BASE_SOCKETURL=${NUXT_PUBLIC_BASE_SOCKETURL} #MCP server 地址 - NUXT_PUBLIC_BASE_MCPSOCKETSERVER=${NUXT_PUBLIC_BASE_MCPSOCKETSERVER} # 日志大小设置,避免日志文件过大 logging: driver: "json-file" options: max-size: "100m" max-file: "10" # 资源限制,防止内存溢出 deploy: resources: limits: memory: 1500MB reservations: memory: 600MB comfy-server: container_name: comfy-server # 阿里云镜像地址 image: registry.cn-shanghai.aliyuncs.com/comfy-ai/comfy-server:${VERSION} # 阿里云 labels: - "com.centurylinklabs.watchtower.enable=true" ports: - "${SERVER_HTTP_PORT}:3001" #http端口 - "${SERVER_WS_PORT}:3002" #websocket端口 - "${CONFIG_WS_MCP_PORT}:3012" read_only: true networks: comfyai: ipv4_address: 172.21.0.6 depends_on: - mongo - redis restart: always environment: # MongoDB配置,用户管理,不会配置的话保持默认即可 - CONFIG_DB_MONGO_URI=mongodb://172.21.0.3:27017 - CONFIG_DB_MONGO_USERNAME=${MONGO_INITDB_ROOT_USERNAME} - CONFIG_DB_MONGO_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD} # Redis配置,队列缓存,不会配置的话保持默认即可 - CONFIG_COMFYUI_QUENE_REDIS_HOST=172.21.0.4 - CONFIG_COMFYUI_QUENE_REDIS_PORT=6379 - CONFIG_COMFYUI_QUENE_REDIS_PASSWORD= #One API 路径,自动注册大模型账号 - CONFIG_ONEAPIURL=http://172.21.0.5:3000 #日志与调试 - LOG_LEVEL=${LOG_LEVEL} #Token过期时间,单位秒 - CONFIG_TOKEN_EXPIRE=${CONFIG_TOKEN_EXPIRE} - CONFIG_JWT_SECRET=${CONFIG_JWT_SECRET} # 代理服务器 - CONFIG_PROXY_URL=${CONFIG_PROXY_URL} # 日志大小设置,避免日志文件过大 logging: driver: "json-file" options: max-size: "100m" max-file: "10" # 使用大语言模型的后端接口 new-api: # image: calciumion/new-api:latest # 原版镜像地址 image: registry.cn-shanghai.aliyuncs.com/easyaigc/new-api:latest #阿里云中转加速 container_name: new-api restart: always command: --log-dir /app/logs ports: - "${ONEAPI_PORT}:3000" networks: comfyai: ipv4_address: 172.21.0.5 volumes: - newapi_data:/data - ./new-api-logs:/app/logs environment: - SQL_DSN=${MYSQL_USER}:${MYSQL_USER_PASSWORD}@tcp(172.21.0.7:3306)/new-api # 指向mysql服务 - REDIS_CONN_STRING=redis://redis - TZ=Asia/Shanghai # - SESSION_SECRET=random_string # 多机部署时设置,必须修改这个随机字符串!!!!!!! # - NODE_TYPE=slave # 多机部署的从节点取消注释 # - SYNC_FREQUENCY=60 # 如需定期同步数据库,取消注释 # - FRONTEND_BASE_URL=https://your-domain.com # 多机部署带前端URL时取消注释 depends_on: - redis - new-api-db healthcheck: test: [ "CMD-SHELL", "wget -q -O - http://localhost:${ONEAPI_PORT}/api/status | grep -o '\"success\":\\s*true' | awk -F: '{print $$2}'" ] interval: 30s timeout: 10s retries: 3 # oneapi: # # 提供oneapi的阿里云镜像下载地址,避免因为网络问题无法拉取镜像的问题 # # image: justsong/one-api # image: registry.cn-shanghai.aliyuncs.com/mynewkey/one-api:latest # container_name: oneapi # restart: always # ports: # - "3011:3000" # networks: # comfyai: # ipv4_address: 172.21.0.12 # environment: # - TZ=Asia/Shanghai # volumes: # - oneapi_data:/data new-api-db: image: registry.cn-shanghai.aliyuncs.com/comfy-ai/mysql-aliyun:latest # one-hub mysql镜像地址 restart: always container_name: mysql volumes: - newapi_db_mysql_data:/var/lib/mysql # 挂载目录,持久化存储 ports: - "${MYSQL_PORT}:3306" networks: comfyai: ipv4_address: 172.21.0.7 environment: TZ: Asia/Shanghai # 设置时区 MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}" # 设置 root 用户的密码 MYSQL_USER: ${MYSQL_USER} # 创建专用用户 MYSQL_PASSWORD: "${MYSQL_USER_PASSWORD}" # 设置专用用户密码 MYSQL_DATABASE: new-api # 自动创建数据库 mongo: image: registry.cn-shanghai.aliyuncs.com/comfy-ai/mongo-aliyun:latest # image: registry.cn-shanghai.aliyuncs.com/comfy-ai/mongo-aliyun:4.4 container_name: mongo restart: unless-stopped privileged: true # 生产环境建议不要暴露 ports: - ${MONGO_PORT+${MONGO_PORT}:27017} networks: comfyai: ipv4_address: 172.21.0.3 environment: # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果 - MONGO_INITDB_ROOT_USERNAME=${MONGO_INITDB_ROOT_USERNAME} - MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD} volumes: # - /usr/local/mongo/data:/data/db - mongo_data:/data/db # 使用docker volume存储数据,提高性能,避免兼容性问题 healthcheck: test: ["CMD", "bash", "-c", "echo > /dev/tcp/localhost/${MONGO_PORT}"] interval: 30s retries: 3 timeout: 10s start_period: 60s redis: image: registry.cn-shanghai.aliyuncs.com/comfy-ai/redis-aliyun:latest container_name: redis restart: always volumes: - ./redis.conf:/etc/redis/redis.conf # 挂载本地 redis.conf command: [ "redis-server", "/etc/redis/redis.conf" ] # 让 Redis 读取配置文件 # ports: # - ${REDIS_PORT+${REDIS_PORT}:6379} read_only: true networks: comfyai: ipv4_address: 172.21.0.4 watchtower: image: registry.cn-shanghai.aliyuncs.com/comfy-ai/watchtower-aliyun:latest volumes: - /var/run/docker.sock:/var/run/docker.sock command: --debug --http-api-update restart: always environment: - WATCHTOWER_HTTP_API_TOKEN=sk-ofJoA4atj9dki6AvDtI1qwxdcejjDQ labels: - "com.centurylinklabs.watchtower.enable=false" # ports: # - "${WATCHTOWER_PORT}:8080" read_only: true networks: comfyai: ipv4_address: 172.21.0.9 portainer: image: registry.cn-shanghai.aliyuncs.com/comfy-ai/portainer-ce:2.21.5 container_name: portainer restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data networks: comfyai: ipv4_address: 172.21.0.11 # ports: # - "${PORTAINER_PORT}:9000" # - "${PORTAINER_HTTPS_PORT}:9443" read_only: true volumes: # oneapi_data: newapi_data: newapi_db_mysql_data: mongo_data: portainer_data: networks: comfyai: driver: bridge ipam: config: - subnet: 172.21.0.0/16 gateway: 172.21.0.1