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

158 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 第九联盟AI坐席辅助系统 - Docker 部署指南
## 前置条件
- Docker Engine >= 20.10
- Docker Compose >= 2.0
- 服务器内存 >= 4GB(推荐 8GB)
- 磁盘空间 >= 10GB
## 快速开始
### 1. 克隆代码
```bash
git clone <your-repo-url>
cd agent_9art
```
### 2. 配置环境变量
```bash
# 复制环境变量模板
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. 构建并启动
```bash
# 一键构建并启动全部服务
docker-compose up -d --build
# 首次启动需要等待 MySQL 初始化(约 30-60 秒)
docker-compose logs -f mysql
```
### 4. 验证状态
```bash
# 查看所有容器状态
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` 文件:
```bash
# 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
```
## 常用命令
```bash
# 查看日志
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 监控各服务健康状态