feat: 集成 Agent 服务治理(ASG)部署配置
- docker-compose.yml 新增 easyai-asg-pg 和 easyai-asg 容器,comfy-server 增加 ASG TCP 连接环境变量 - 新增 .env.ASG.sample 环境变量模板,地址统一使用容器服务名替代固定 IP - easyai-proxy.conf.sample 新增 /asg-api/ 反向代理配置 - README.md 新增 2026.3.2 更新记录及完整升级步骤 Made-with: Cursor
This commit is contained in:
parent
22583422e1
commit
b94eb92d5f
43
.env.ASG.sample
Normal file
43
.env.ASG.sample
Normal file
@ -0,0 +1,43 @@
|
||||
# ============================================
|
||||
# Agent 服务治理(service-governance)环境变量
|
||||
# 使用前请复制为 .env.ASG 并根据实际情况修改
|
||||
# ============================================
|
||||
|
||||
# ---------- PostgreSQL ----------
|
||||
# Prisma 数据库连接字符串(容器内网地址)
|
||||
ASG_DATABASE_URL=postgresql://easyai:easyai2025@easyai-asg-pg:5432/agent_governance?schema=public
|
||||
|
||||
# PostgreSQL 容器初始化配置(与 docker-compose 中 sg-postgres 保持一致)
|
||||
ASG_POSTGRES_USER=easyai
|
||||
ASG_POSTGRES_PASSWORD=easyai2025
|
||||
ASG_POSTGRES_DB=agent_governance
|
||||
|
||||
# ---------- Redis ----------
|
||||
# 复用主服务的 Redis 实例,使用独立 DB 隔离数据
|
||||
ASG_REDIS_HOST=redis
|
||||
ASG_REDIS_PORT=6379
|
||||
ASG_REDIS_PASSWORD=
|
||||
ASG_REDIS_DB=8
|
||||
|
||||
# ---------- 服务端口 ----------
|
||||
# HTTP API 端口
|
||||
ASG_PORT=3003
|
||||
# TCP 微服务端口(供 comfy-server 内部调用)
|
||||
ASG_TCP_PORT=4003
|
||||
ASG_TCP_HOST=0.0.0.0
|
||||
|
||||
# ---------- 主服务连接 ----------
|
||||
# Agent 调用时需要访问的 comfy-server 地址(容器内网地址)
|
||||
ASG_MAIN_BACKEND_URL=http://comfy-server:3001
|
||||
# 管理员账号(用于 Agent 登录获取 token)
|
||||
ASG_ADMIN_USERNAME=admin
|
||||
ASG_ADMIN_PASSWORD=123456
|
||||
|
||||
# ---------- 其他 ----------
|
||||
# 日志级别
|
||||
LOG_LEVEL=log,error,warn,debug
|
||||
# 是否禁用 Swagger 文档(true 禁用)
|
||||
ASG_DOCS_DISABLE=false
|
||||
|
||||
# 服务治理镜像版本
|
||||
ASG_VERSION=latest
|
||||
88
README.md
88
README.md
@ -2,6 +2,94 @@
|
||||
## 重要更新记录:
|
||||
|
||||
|
||||
### 2026.3.2
|
||||
|
||||
1. **新增 Agent 服务治理(ASG)模块**:新增 `easyai-asg`(Agent 服务治理)容器和独立的 `easyai-asg-pg`(PostgreSQL 18)数据库容器,用于支持 Agent 自动化治理能力。
|
||||
2. **新增 Nginx 反向代理**:在 `easyai-proxy.conf.sample` 中新增 `/asg-api/` 路径代理,用于暴露 ASG 服务的 REST API。
|
||||
3. **新增环境变量文件**:新增 `.env.ASG.sample` 文件,包含 ASG 服务所需的全部环境变量。
|
||||
4. 主服务 `comfy-server` 新增 `ASG_TCP_HOST` 和 `ASG_TCP_PORT` 环境变量,用于内部 TCP 微服务通信。
|
||||
|
||||
#### 升级步骤
|
||||
|
||||
**步骤一:更新文件**
|
||||
|
||||
将以下文件更新到最新版本:
|
||||
- `docker-compose.yml`
|
||||
- `easyai-proxy.conf.sample`
|
||||
|
||||
新增文件复制到部署目录:
|
||||
- `.env.ASG.sample` → 复制为 `.env.ASG` 并根据实际环境修改
|
||||
|
||||
**步骤二:配置 `.env.ASG`**
|
||||
|
||||
```bash
|
||||
cp .env.ASG.sample .env.ASG
|
||||
```
|
||||
|
||||
根据实际环境修改 `.env.ASG` 中的关键配置:
|
||||
```dotenv
|
||||
# PostgreSQL 连接(默认使用容器内网地址,一般无需修改)
|
||||
ASG_DATABASE_URL=postgresql://easyai:easyai2025@easyai-asg-pg:5432/agent_governance?schema=public
|
||||
ASG_POSTGRES_USER=easyai
|
||||
ASG_POSTGRES_PASSWORD=easyai2025
|
||||
|
||||
# Redis(复用主服务 Redis,使用独立 DB 隔离)
|
||||
ASG_REDIS_HOST=redis
|
||||
ASG_REDIS_PASSWORD= # 与主服务 Redis 密码保持一致
|
||||
|
||||
# 主服务连接地址(容器内网地址)
|
||||
ASG_MAIN_BACKEND_URL=http://comfy-server:3001
|
||||
# 管理员账号(用于 Agent 调用时登录获取 token)
|
||||
ASG_ADMIN_USERNAME=admin
|
||||
ASG_ADMIN_PASSWORD=123456
|
||||
```
|
||||
|
||||
**步骤三:可选,更新 Nginx 配置,暴露创建任务治理相关接口,如果你希望通过外部接口发送Agent治理任务才需要配置**
|
||||
|
||||
在 nginx 配置文件(`/etc/nginx/conf.d/easyai-proxy.conf`)中添加 ASG API 代理,具体位置参考 `easyai-proxy.conf.sample`:
|
||||
```nginx
|
||||
location /asg-api/ {
|
||||
proxy_pass http://127.0.0.1:3003/;
|
||||
proxy_read_timeout 300s;
|
||||
client_max_body_size 20M;
|
||||
proxy_redirect off;
|
||||
proxy_set_header X-Original-Prefix '/asg-api';
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header Host $host;
|
||||
}
|
||||
```
|
||||
|
||||
添加后重载 Nginx:
|
||||
```bash
|
||||
nginx -t && nginx -s reload
|
||||
```
|
||||
|
||||
**步骤四:启动服务**
|
||||
|
||||
```bash
|
||||
cd ~/easyai
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
新增容器:`easyai-asg-pg`(PostgreSQL)和 `easyai-asg`(Agent 服务治理),数据库会在首次启动时自动完成初始化和迁移。
|
||||
|
||||
**步骤五:验证**
|
||||
|
||||
```bash
|
||||
# 检查容器状态
|
||||
docker compose ps easyai-asg-pg easyai-asg
|
||||
|
||||
# 检查 ASG 服务健康状态
|
||||
curl http://127.0.0.1:3003/health
|
||||
|
||||
# 通过 Nginx 代理访问(配置 Nginx 后)
|
||||
curl https://<你的域名>/asg-api/health
|
||||
```
|
||||
|
||||
> **注意**:如果不需要 Agent 服务治理功能,可以不执行以上步骤,不影响主服务正常运行。需要开放 3003 端口(或通过 Nginx 代理访问)。
|
||||
|
||||
|
||||
### 2025.2.4
|
||||
|
||||
|
||||
@ -103,6 +103,9 @@ services:
|
||||
- CONFIG_VIDEO_EDIT_API_URL=http://video-edit:8000
|
||||
# 沙箱环境baseURL
|
||||
- SANDBOX_SERVICE_BASE_URL=${SANDBOX_SERVICE_BASE_URL:-http://sandbox:8000}
|
||||
# 服务治理 TCP 连接
|
||||
- ASG_TCP_HOST=easyai-asg
|
||||
- ASG_TCP_PORT=4003
|
||||
# 日志大小设置,避免日志文件过大
|
||||
env_file:
|
||||
- .env
|
||||
@ -325,6 +328,61 @@ services:
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
easyai-asg-pg:
|
||||
image: registry.cn-shanghai.aliyuncs.com/easyaigc/postgres:18-alpine
|
||||
container_name: easyai-asg-pg
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_USER: ${ASG_POSTGRES_USER:-easyai}
|
||||
POSTGRES_PASSWORD: ${ASG_POSTGRES_PASSWORD:-easyai2025}
|
||||
POSTGRES_DB: ${ASG_POSTGRES_DB:-agent_governance}
|
||||
volumes:
|
||||
- asg_postgres_data:/var/lib/postgresql/data
|
||||
networks:
|
||||
comfyai:
|
||||
ipv4_address: 172.21.0.13
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U ${ASG_POSTGRES_USER:-easyai}"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "100m"
|
||||
max-file: "10"
|
||||
easyai-asg:
|
||||
container_name: easyai-asg
|
||||
image: registry.cn-shanghai.aliyuncs.com/easyaigc/agent-governance:${ASG_VERSION:-latest}
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
ports:
|
||||
- "${ASG_PORT:-3003}:3003"
|
||||
networks:
|
||||
comfyai:
|
||||
ipv4_address: 172.21.0.14
|
||||
depends_on:
|
||||
sg-postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_started
|
||||
volumes:
|
||||
- ./data/easyai-asg/.pm2:/app/.pm2
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env.ASG
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "100m"
|
||||
max-file: "10"
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 512MB
|
||||
reservations:
|
||||
memory: 128MB
|
||||
# portainer:
|
||||
# image: registry.cn-shanghai.aliyuncs.com/comfy-ai/portainer-ce:2.21.5
|
||||
# container_name: portainer
|
||||
@ -368,6 +426,7 @@ volumes:
|
||||
mongo_data:
|
||||
portainer_data:
|
||||
rabbitmq_data:
|
||||
asg_postgres_data:
|
||||
networks:
|
||||
comfyai:
|
||||
driver: bridge
|
||||
|
||||
@ -79,6 +79,18 @@ server {
|
||||
proxy_set_header Host $host;
|
||||
}
|
||||
|
||||
location /asg-api/ {
|
||||
proxy_pass http://127.0.0.1:3003/;
|
||||
proxy_read_timeout 300s;
|
||||
client_max_body_size 20M;
|
||||
proxy_redirect off;
|
||||
proxy_set_header X-Original-Prefix '/asg-api';
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header Host $host;
|
||||
}
|
||||
|
||||
location /plugins/ {
|
||||
proxy_pass http://127.0.0.1:3020/plugins/;
|
||||
proxy_redirect off;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user