Add DevOps release and deployment configuration
Some checks failed
Build and Deploy / test-backend (push) Has been cancelled
Build and Deploy / build-backend (push) Has been cancelled
Build and Deploy / build-admin (push) Has been cancelled
Deploy to Production / build-backend (push) Has been cancelled
Deploy to Production / deploy (push) Has been cancelled

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
bujie9527
2026-02-05 22:59:28 +08:00
parent edae775129
commit 0bd860f956
9 changed files with 488 additions and 30 deletions

204
README_DEPLOY.md Normal file
View File

@@ -0,0 +1,204 @@
# 部署指南
## 概述
本项目使用 Docker 容器化部署,镜像存储在私有 Registry`registry.667788.cool`
## 镜像信息
- **Backend**: `registry.667788.cool/wecom-backend:${TAG}`
- **Admin**: `registry.667788.cool/wecom-admin:${TAG}`
- **Nginx**: `registry.667788.cool/wecom-nginx:${TAG}`
默认 TAG: `latest`
## 本地构建
### 构建并推送镜像
```bash
# 赋予脚本执行权限(首次运行)
chmod +x scripts/build_and_push.sh
# 使用默认标签 latest
./scripts/build_and_push.sh
# 或指定标签
./scripts/build_and_push.sh v1.0.0
```
### 手动构建
```bash
# 登录 Registry
docker login registry.667788.cool
# 设置标签
export TAG=v1.0.0
# 构建镜像
docker compose -f docker-compose.release.yml build
# 推送镜像
docker compose -f docker-compose.release.yml push
```
## 云端部署
### 准备工作
1. **服务器要求**
- Linux 服务器Ubuntu 20.04+ / CentOS 7+
- Docker 和 docker-compose 已安装
- 开放端口80、443HTTP/HTTPS
2. **上传部署文件**
```bash
# 创建部署目录
mkdir -p /opt/wecom-ai-assistant
cd /opt/wecom-ai-assistant
# 上传 deploy/ 目录下的所有文件
# 或使用 Git 克隆项目后复制 deploy/ 目录
```
3. **配置环境变量**
```bash
cd /opt/wecom-ai-assistant/deploy
# 复制环境变量模板
cp .env.prod.example .env.prod
# 编辑配置文件
nano .env.prod
```
填写以下必需配置:
- `TAG`: 镜像标签(默认 latest
- `POSTGRES_PASSWORD`: 数据库密码
- `DATABASE_URL`: 数据库连接字符串
- `WECOM_*`: 企业微信配置
- `JWT_SECRET`: JWT 密钥
### 部署步骤
```bash
# 1. 进入部署目录
cd /opt/wecom-ai-assistant/deploy
# 2. 登录 Registry如果需要认证
docker login registry.667788.cool
# 3. 拉取最新镜像
docker compose -f docker-compose.prod.yml --env-file .env.prod pull
# 4. 启动服务
docker compose -f docker-compose.prod.yml --env-file .env.prod up -d
# 5. 查看服务状态
docker compose -f docker-compose.prod.yml ps
# 6. 查看日志
docker compose -f docker-compose.prod.yml logs -f
```
### 验证部署
```bash
# 健康检查
curl http://localhost/api/health
# 查看服务状态
docker compose -f docker-compose.prod.yml ps
# 查看日志
docker compose -f docker-compose.prod.yml logs backend
docker compose -f docker-compose.prod.yml logs admin
docker compose -f docker-compose.prod.yml logs nginx
```
## 更新部署
### 更新到新版本
```bash
# 1. 更新环境变量中的 TAG
# 编辑 .env.prod修改 TAG=v1.0.1
# 2. 拉取新镜像
docker compose -f docker-compose.prod.yml --env-file .env.prod pull
# 3. 重启服务
docker compose -f docker-compose.prod.yml --env-file .env.prod up -d
# 4. 验证
docker compose -f docker-compose.prod.yml ps
```
### 回滚到旧版本
```bash
# 1. 修改 .env.prod 中的 TAG 为旧版本
# TAG=v1.0.0
# 2. 拉取旧镜像
docker compose -f docker-compose.prod.yml --env-file .env.prod pull
# 3. 重启服务
docker compose -f docker-compose.prod.yml --env-file .env.prod up -d
```
## 停止和清理
```bash
# 停止服务
docker compose -f docker-compose.prod.yml --env-file .env.prod down
# 停止并删除数据卷(⚠️ 危险操作)
docker compose -f docker-compose.prod.yml --env-file .env.prod down -v
# 清理未使用的镜像
docker image prune -a
```
## 服务访问
部署成功后,服务可通过以下方式访问:
- **管理后台**: http://your-server-ip/
- **后端 API**: http://your-server-ip/api/
- **健康检查**: http://your-server-ip/api/health
## 故障排查
### 问题:无法拉取镜像
**解决方案**
```bash
# 检查 Registry 登录状态
docker login registry.667788.cool
# 手动拉取镜像测试
docker pull registry.667788.cool/wecom-backend:latest
```
### 问题:服务启动失败
**检查项**
1. 环境变量配置是否正确
2. 数据库连接是否正常
3. 端口是否被占用
4. 查看服务日志:`docker compose -f docker-compose.prod.yml logs`
### 问题Nginx 无法访问后端
**解决方案**
1. 检查网络连接:`docker network ls`
2. 检查服务是否在同一网络:`docker compose -f docker-compose.prod.yml ps`
3. 检查 Nginx 配置:`cat deploy/nginx.conf`
## 相关文档
- [生产部署详细指南](./docs/deploy.md)
- [宝塔面板部署指南](./docs/baota-docker-setup.md)
- [Docker 镜像加速配置](./docs/docker-mirror.md)