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