270 lines
5.4 KiB
Markdown
270 lines
5.4 KiB
Markdown
# QAUP 系统部署和更新说明
|
||
|
||
## 开发环境操作
|
||
|
||
### 生成程序更新文件
|
||
|
||
当代码修改后,需要生成新的jar文件供客户更新:
|
||
|
||
```bash
|
||
./deploy/simple/build-update.sh
|
||
```
|
||
生成包含详细说明的更新包:
|
||
- `qaup-admin.jar` - 应用程序
|
||
- `UPDATE-INSTRUCTIONS.md` - 详细更新说明
|
||
- `VERSION-INFO.txt` - 版本信息
|
||
|
||
**注意**:如果只需要jar文件,可以从生成的更新包中提取 `qaup-admin.jar` 文件单独发送给客户。
|
||
|
||
### 生成完整部署包
|
||
```bash
|
||
./deploy/simple/package.sh
|
||
```
|
||
生成包含所有组件的完整部署包,用于首次部署或重大版本更新。
|
||
|
||
---
|
||
|
||
## 客户环境操作
|
||
|
||
### 首次部署
|
||
|
||
### 1. 解压部署包
|
||
```bash
|
||
mkdir qaup-deploy
|
||
tar -xzf qaup-deploy-20250105-143022.tar.gz -C qaup-deploy
|
||
cd qaup-deploy
|
||
```
|
||
|
||
### 2. 执行部署
|
||
```bash
|
||
./deploy.sh
|
||
```
|
||
|
||
### 3. 验证部署
|
||
```bash
|
||
# 检查服务状态
|
||
docker compose ps
|
||
|
||
# 访问系统
|
||
curl http://localhost:8080/actuator/health
|
||
```
|
||
|
||
## 程序更新(仅更新jar文件)
|
||
|
||
### 更新前准备
|
||
|
||
1. **确认当前系统状态**:
|
||
```bash
|
||
cd qaup-deploy
|
||
docker compose ps
|
||
```
|
||
|
||
2. **备份重要数据**(可选但推荐):
|
||
```bash
|
||
# 备份数据库
|
||
docker exec qaup-postgres pg_dump -U qaup qaup > backup-$(date +%Y%m%d).sql
|
||
|
||
# 备份配置文件
|
||
cp config.yml config.yml.backup
|
||
```
|
||
|
||
### 更新步骤
|
||
|
||
### 1. 准备新版本文件
|
||
|
||
#### 如果收到的是完整更新包(.tar.gz文件):
|
||
```bash
|
||
# 解压更新包
|
||
tar -xzf qaup-update-20250105-143022.tar.gz
|
||
cd qaup-update-20250105-143022
|
||
|
||
# 查看更新说明
|
||
cat UPDATE-INSTRUCTIONS.md
|
||
|
||
# 复制jar文件到部署目录
|
||
cd ../qaup-deploy
|
||
cp ../qaup-update-20250105-143022/qaup-admin.jar new-app.jar
|
||
```
|
||
|
||
#### 如果收到的是jar文件:
|
||
```bash
|
||
cd qaup-deploy
|
||
cp /path/to/qaup-admin-20250105-143022.jar new-app.jar
|
||
```
|
||
|
||
### 2. 执行程序更新
|
||
```bash
|
||
./update.sh
|
||
```
|
||
|
||
### 3. 验证更新结果
|
||
```bash
|
||
# 检查服务状态
|
||
docker compose ps
|
||
|
||
# 检查应用日志
|
||
docker compose logs -f qaup-app
|
||
|
||
# 访问系统确认功能正常
|
||
curl http://localhost:8080/actuator/health
|
||
```
|
||
|
||
## 更新失败处理
|
||
|
||
如果更新失败,脚本会自动尝试回滚。如果自动回滚也失败:
|
||
|
||
### 手动回滚:
|
||
```bash
|
||
# 停止应用
|
||
docker compose stop qaup-app
|
||
|
||
# 恢复备份文件
|
||
cp app.jar.backup.* app.jar
|
||
|
||
# 启动应用
|
||
docker compose start qaup-app
|
||
```
|
||
|
||
### 检查问题:
|
||
```bash
|
||
# 查看应用日志
|
||
docker compose logs qaup-app
|
||
|
||
# 查看所有服务状态
|
||
docker compose ps -a
|
||
```
|
||
|
||
## 配置文件更新
|
||
|
||
如果新版本需要更新配置文件:
|
||
|
||
1. **备份当前配置**:
|
||
```bash
|
||
cp config.yml config.yml.backup
|
||
```
|
||
|
||
2. **更新配置**:
|
||
```bash
|
||
# 编辑配置文件
|
||
vi config.yml
|
||
```
|
||
|
||
3. **重启应用**:
|
||
```bash
|
||
docker compose restart qaup-app
|
||
```
|
||
|
||
## 常见问题
|
||
|
||
### Q: 更新后无法访问系统
|
||
A: 检查端口是否被占用,查看应用日志:
|
||
```bash
|
||
docker compose logs qaup-app
|
||
netstat -tlnp | grep 8080
|
||
```
|
||
|
||
### Q: 数据库连接失败
|
||
A: 检查数据库服务状态:
|
||
```bash
|
||
docker compose logs qaup-postgres
|
||
docker exec qaup-postgres pg_isready -U qaup
|
||
```
|
||
|
||
### Q: 如何完全重新部署
|
||
A: 如果更新出现严重问题,可以重新部署:
|
||
```bash
|
||
# 停止所有服务
|
||
docker compose down
|
||
|
||
# 清理数据(注意:这会删除所有数据)
|
||
rm -rf data/
|
||
|
||
# 重新部署
|
||
./deploy.sh
|
||
```
|
||
|
||
## 完整系统重新部署
|
||
|
||
如果需要重新部署整个系统(包括更新Docker镜像、配置等):
|
||
|
||
### 1. 获取新的部署包
|
||
```bash
|
||
# 解压新的部署包到新目录
|
||
mkdir qaup-deploy-new
|
||
tar -xzf qaup-deploy-new-20250110-100000.tar.gz -C qaup-deploy-new
|
||
cd qaup-deploy-new
|
||
```
|
||
|
||
### 2. 迁移数据(如果需要保留数据)
|
||
```bash
|
||
# 从旧系统备份数据
|
||
cd ../qaup-deploy
|
||
docker exec qaup-postgres pg_dump -U qaup qaup > ../data-backup.sql
|
||
|
||
# 停止旧系统
|
||
docker compose down
|
||
|
||
# 在新系统中恢复数据
|
||
cd ../qaup-deploy-new
|
||
./deploy.sh
|
||
docker exec -i qaup-postgres psql -U qaup qaup < ../data-backup.sql
|
||
```
|
||
|
||
## 操作流程总结
|
||
|
||
### 开发环境 → 客户环境流程
|
||
|
||
#### 程序更新流程:
|
||
```
|
||
开发环境:
|
||
1. 代码修改完成
|
||
2. ./deploy/simple/build-update.sh # 生成更新包
|
||
3. 发送更新包或jar文件给客户
|
||
|
||
客户环境:
|
||
1. cd qaup-deploy
|
||
2. cp new-jar-file.jar new-app.jar # 重命名文件
|
||
3. ./update.sh # 执行更新
|
||
4. 验证更新结果
|
||
```
|
||
|
||
#### 完整部署流程:
|
||
```
|
||
开发环境:
|
||
1. ./deploy/simple/package.sh # 生成完整部署包
|
||
2. 发送部署包给客户
|
||
|
||
客户环境:
|
||
1. mkdir qaup-deploy && tar -xzf qaup-deploy-xxx.tar.gz -C qaup-deploy # 解压部署包
|
||
2. cd qaup-deploy
|
||
3. ./deploy.sh # 执行部署
|
||
4. 验证部署结果
|
||
```
|
||
|
||
## 更新记录
|
||
|
||
建议记录每次更新的信息:
|
||
- 更新时间
|
||
- 版本号
|
||
- 更新人员
|
||
- 更新类型(程序更新/完整部署)
|
||
- 是否成功
|
||
- 遇到的问题
|
||
|
||
示例:
|
||
```
|
||
2025-01-05 14:30 - v1.0.1 → v1.0.2 - 张三 - 程序更新 - 成功
|
||
2025-01-10 09:15 - v1.0.2 → v1.0.3 - 李四 - 程序更新 - 失败,已回滚
|
||
2025-01-15 16:00 - v1.0.3 → v1.1.0 - 王五 - 完整部署 - 成功
|
||
```
|
||
|
||
## 文件说明
|
||
|
||
### 开发环境脚本:
|
||
- `deploy/simple/build-update.sh` - 生成程序更新包
|
||
- `deploy/simple/package.sh` - 生成完整部署包
|
||
|
||
### 客户环境脚本:
|
||
- `deploy.sh` - 首次部署脚本
|
||
- `update.sh` - 程序更新脚本
|
||
- `DeployGuide.md` - 本说明文档 |