agent_9art/docs/deploy/DEPLOY.md
jiao d327826c78 chore: 完成项目整体打包与配置更新
1. 更新所有服务Dockerfile,切换到eclipse-temurin:17-jre-alpine镜像并调整服务端口
2. 配置前端项目基础路径与nginx代理
3. 新增数据库初始化编码设置与测试依赖
4. 添加部分服务的Servlet编码配置与JWT/LLM密钥配置
5. 完善话术实体类校验注解与Mapper接口
6. 新增密码生成工具类与部分测试文件配置
2026-05-21 11:40:22 +08:00

4.5 KiB
Raw Permalink Blame History

第九联盟AI坐席辅助系统 - Docker 部署指南

前置条件

  • Docker Engine >= 20.10
  • Docker Compose >= 2.0
  • 服务器内存 >= 4GB(推荐 8GB)
  • 磁盘空间 >= 10GB

快速开始

1. 克隆代码

git clone <your-repo-url>
cd agent_9art

2. 配置环境变量

# 复制环境变量模板
cp .env .env.local

# 编辑 .env.local,填入真实配置
vim .env.local

必须填写的配置项:

变量 说明 获取方式
WECOM_ARCHIVE_SECRET 企微会话存档 Secret 企业微信管理后台 → 管理工具 → 会话内容存档
WECOM_ARCHIVE_RSA_KEY RSA 私钥(PKCS#1) 自行生成,公钥配置到企微后台
WECOM_ARCHIVE_CALLBACK_TOKEN 回调验证 Token 企微后台配置接收消息时设置
DASHSCOPE_API_KEY 通义千问 API Key 阿里云 DashScope 控制台

可选修改:

  • MYSQL_ROOT_PASSWORD:数据库 root 密码(默认 root)
  • RABBITMQ_DEFAULT_PASS:RabbitMQ 密码(默认 admin)

3. 构建并启动

# 一键构建并启动全部服务
docker-compose up -d --build

# 首次启动需要等待 MySQL 初始化(约 30-60 秒)
docker-compose logs -f mysql

4. 验证状态

# 查看所有容器状态
docker-compose ps

# 预期输出:所有容器状态为 Up (healthy)
# NAME                    STATUS
# ai-assistant-mysql      Up (healthy)
# ai-assistant-redis      Up (healthy)
# ai-assistant-rabbitmq   Up (healthy)
# ai-assistant-gateway    Up
# ai-assistant-auth       Up
# ...

5. 访问系统

地址 说明
http://localhost/admin 管理后台(Admin Dashboard)
http://localhost/sidebar 侧边栏 H5(企微侧边栏)
http://localhost/api/v1/... API 接口(通过 Gateway)
http://localhost:15672 RabbitMQ 管理面板(guest/admin)

企微 SDK Linux 部署(archive-service)

Windows 开发环境使用 .dll,Linux 服务器需要 .so 文件:

# 1. 从企微官网下载 Linux SDK,解压得到 libWeWorkFinanceSdk_Java.so
# 2. 放置到项目目录
mkdir -p ./sdk/linux
cp /path/to/libWeWorkFinanceSdk_Java.so ./sdk/linux/

# 3. 修改 docker-compose.yml,取消注释 archive-service 的 volumes 挂载
# volumes:
#   - ./sdk/linux:/app/sdk

# 4. 重新启动 archive-service
docker-compose up -d --build archive-service

常用命令

# 查看日志
docker-compose logs -f                    # 全部服务
docker-compose logs -f gateway            # 指定服务

# 重启服务
docker-compose restart gateway

# 停止全部服务
docker-compose down

# 停止并删除数据卷(慎用,会清空数据库)
docker-compose down -v

# 重新构建并启动单个服务
docker-compose up -d --build auth-service

# 进入容器调试
docker exec -it ai-assistant-mysql mysql -uroot -p
docker exec -it ai-assistant-redis redis-cli

服务端口对照

服务 容器端口 宿主机端口 说明
Nginx 80 80 统一入口
Gateway 8080 8080 API 网关
Auth 8081 8081 认证服务
Archive 8082 8082 会话存档
Conversation 8083 8083 对话管理
Intent 8084 8084 意图识别
Recommendation 8085 8085 话术推荐
Generation 8086 8086 AI 生成
KB-Admin 8087 8087 管理后台 API
Analytics 8088 8088 数据分析
Admin 80 5174 前端管理后台
Sidebar 80 5173 前端侧边栏
MySQL 3306 3306 数据库
Redis 6379 6379 缓存
RabbitMQ 5672 / 15672 5672 / 15672 消息队列 / 管理面板

数据持久化

Docker Compose 使用命名卷持久化数据:

卷名 说明
mysql_data MySQL 数据文件
redis_data Redis 持久化数据
rabbitmq_data RabbitMQ 消息队列数据

数据保存在 Docker 管理的卷中,执行 docker-compose down 不会删除数据。如需彻底清空,使用 docker-compose down -v。

生产环境建议

  1. 修改默认密码:.env 中的 MYSQL_ROOT_PASSWORD 和 RABBITMQ_DEFAULT_PASS 不要使用默认值
  2. 使用 HTTPS:Nginx 配置 SSL 证书,将 80 端口重定向到 443
  3. 限制端口暴露:生产环境只暴露 Nginx 80/443 端口,其他后端服务端口不映射到宿主机
  4. 日志管理:配置 Docker 日志轮转,避免磁盘占满
  5. 监控告警:集成 Prometheus + Grafana 监控各服务健康状态