first commit

This commit is contained in:
2025-05-07 15:25:29 +08:00
commit daff487a01
9 changed files with 715 additions and 0 deletions
+208
View File
@@ -0,0 +1,208 @@
# 非 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"
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
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:
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