75 lines
1.9 KiB
Bash
75 lines
1.9 KiB
Bash
#!/bin/bash
|
||
|
||
# ============================================
|
||
# AIGC项目部署脚本(沙箱测试环境)
|
||
# ============================================
|
||
|
||
echo "🚀 开始部署 AIGC 项目到生产服务器..."
|
||
|
||
# 配置变量
|
||
SERVER="root@vionow.com"
|
||
REMOTE_DIR="/opt/aigc"
|
||
JAR_FILE="target/demo-0.0.1-SNAPSHOT.jar"
|
||
FRONTEND_DIR="frontend/dist"
|
||
|
||
# 检查JAR文件是否存在
|
||
if [ ! -f "$JAR_FILE" ]; then
|
||
echo "❌ JAR文件不存在,请先运行 mvnw clean package"
|
||
exit 1
|
||
fi
|
||
|
||
# 检查前端文件是否存在
|
||
if [ ! -d "$FRONTEND_DIR" ]; then
|
||
echo "❌ 前端dist目录不存在,请先运行 npm run build"
|
||
exit 1
|
||
fi
|
||
|
||
# 1. 上传后端JAR文件
|
||
echo "📦 上传后端JAR文件..."
|
||
scp "$JAR_FILE" "$SERVER:$REMOTE_DIR/"
|
||
|
||
# 2. 上传前端文件
|
||
echo "📦 上传前端文件..."
|
||
scp -r "$FRONTEND_DIR"/* "$SERVER:/var/www/html/"
|
||
|
||
# 3. 在服务器上重启服务
|
||
echo "🔄 重启服务..."
|
||
ssh "$SERVER" << 'ENDSSH'
|
||
# 停止旧服务
|
||
echo "⏹️ 停止旧服务..."
|
||
pkill -f demo-0.0.1-SNAPSHOT.jar
|
||
sleep 3
|
||
|
||
# 启动新服务
|
||
echo "▶️ 启动新服务..."
|
||
cd /opt/aigc
|
||
nohup java -jar demo-0.0.1-SNAPSHOT.jar \
|
||
--spring.profiles.active=prod \
|
||
--spring.config.additional-location=file:./application-prod.properties \
|
||
> app.log 2>&1 &
|
||
|
||
# 等待启动
|
||
sleep 5
|
||
|
||
# 检查服务状态
|
||
if pgrep -f demo-0.0.1-SNAPSHOT.jar > /dev/null; then
|
||
echo "✅ 服务启动成功!"
|
||
echo "📋 最新日志:"
|
||
tail -n 20 app.log
|
||
else
|
||
echo "❌ 服务启动失败,请检查日志:"
|
||
tail -n 50 app.log
|
||
exit 1
|
||
fi
|
||
ENDSSH
|
||
|
||
echo ""
|
||
echo "✅ 部署完成!"
|
||
echo "🌐 访问地址:"
|
||
echo " 前端:https://vionow.com"
|
||
echo " 后端:https://vionow.com/api/"
|
||
echo " Swagger:https://vionow.com/swagger-ui.html"
|
||
echo ""
|
||
echo "📋 查看实时日志:"
|
||
echo " ssh $SERVER 'tail -f /opt/aigc/app.log'"
|