#!/bin/bash # QAUP 一键升级脚本 set -e echo "=== QAUP 一键升级 ===" # 检查新版本文件 if [ ! -f "new-app.jar" ]; then echo "❌ 请先将新版本文件重命名为 new-app.jar" echo " 例如: cp qaup-admin-1.0.2.jar new-app.jar" exit 1 fi # 备份当前版本 echo "备份当前版本..." cp app.jar app.jar.backup.$(date +%Y%m%d-%H%M%S) # 停止应用 echo "停止应用服务..." docker compose stop qaup-app # 替换应用 echo "更新应用文件..." cp new-app.jar app.jar # 启动应用 echo "启动应用服务..." docker compose start qaup-app # 等待启动 echo "等待服务启动(30秒)..." sleep 30 # 检查服务状态 if curl -f -s http://localhost:8080/actuator/health > /dev/null 2>&1; then echo "✅ 升级成功!" echo "备份文件已保存,如有问题可手动回滚" else echo "❌ 升级失败,尝试回滚..." docker compose stop qaup-app cp app.jar.backup.* app.jar 2>/dev/null || echo "未找到备份文件" docker compose start qaup-app echo "请检查日志: docker compose logs qaup-app" fi