|
|
@@ -4,7 +4,7 @@
|
|
|
set -e
|
|
|
|
|
|
echo "========================================================"
|
|
|
-echo " ShuDao SafeAI 测试环境一键打包脚本 (Linux)"
|
|
|
+echo " ShuDao SafeAI 测试环境一键部署脚本 (Linux)"
|
|
|
echo "========================================================"
|
|
|
echo ""
|
|
|
|
|
|
@@ -12,10 +12,12 @@ echo ""
|
|
|
ROOT_DIR=$(pwd)
|
|
|
FRONTEND_DIR="$ROOT_DIR/shudao-vue-frontend"
|
|
|
BACKEND_DIR="$ROOT_DIR/shudao-go-backend"
|
|
|
-OUTPUT_DIR="$ROOT_DIR/deploy_output_test"
|
|
|
+DEPLOY_DIR="/opt/www/shudao-go-backend"
|
|
|
+SERVICE_NAME="shudao-go-backend"
|
|
|
+SERVICE_PORT=22001
|
|
|
|
|
|
# 1. 前端构建
|
|
|
-echo "[1/6] 正在构建前端项目 (Vue)..."
|
|
|
+echo "[1/8] 正在构建前端项目 (Vue)..."
|
|
|
cd "$FRONTEND_DIR"
|
|
|
npm run build
|
|
|
if [ $? -ne 0 ]; then
|
|
|
@@ -26,19 +28,15 @@ echo "[SUCCESS] 前端构建完成。"
|
|
|
echo ""
|
|
|
|
|
|
# 2. 清理后端旧资源
|
|
|
-echo "[2/6] 清理后端旧资源..."
|
|
|
+echo "[2/8] 清理后端旧资源..."
|
|
|
cd "$ROOT_DIR"
|
|
|
-if [ -d "$BACKEND_DIR/assets" ]; then
|
|
|
- rm -rf "$BACKEND_DIR/assets"
|
|
|
-fi
|
|
|
-if [ -f "$BACKEND_DIR/views/index.html" ]; then
|
|
|
- rm -f "$BACKEND_DIR/views/index.html"
|
|
|
-fi
|
|
|
+rm -rf "$BACKEND_DIR/assets" 2>/dev/null || true
|
|
|
+rm -f "$BACKEND_DIR/views/index.html" 2>/dev/null || true
|
|
|
echo "[SUCCESS] 清理完成。"
|
|
|
echo ""
|
|
|
|
|
|
# 3. 复制新资源
|
|
|
-echo "[3/6] 整合前端资源到后端..."
|
|
|
+echo "[3/8] 整合前端资源到后端..."
|
|
|
mkdir -p "$BACKEND_DIR/assets"
|
|
|
mkdir -p "$BACKEND_DIR/views"
|
|
|
cp -r "$FRONTEND_DIR/dist/assets/"* "$BACKEND_DIR/assets/"
|
|
|
@@ -47,46 +45,72 @@ echo "[SUCCESS] 资源整合完成。"
|
|
|
echo ""
|
|
|
|
|
|
# 4. 复制测试环境配置
|
|
|
-echo "[4/6] 复制测试环境配置..."
|
|
|
+echo "[4/8] 复制测试环境配置..."
|
|
|
mkdir -p "$BACKEND_DIR/conf"
|
|
|
cp "$BACKEND_DIR/conf/app.conf.test" "$BACKEND_DIR/conf/app.conf"
|
|
|
echo "[SUCCESS] 配置文件已更新为测试环境。"
|
|
|
echo ""
|
|
|
|
|
|
-# 5. 后端打包 (Linux amd64)
|
|
|
-echo "[5/6] 正在打包后端 (Target: Linux/amd64)..."
|
|
|
+# 5. 后端编译 (Linux amd64)
|
|
|
+echo "[5/8] 正在编译后端 (Target: Linux/amd64)..."
|
|
|
cd "$BACKEND_DIR"
|
|
|
-bee pack -be GOOS=linux -be GOARCH=amd64
|
|
|
+GOOS=linux GOARCH=amd64 go build -o $SERVICE_NAME main.go
|
|
|
if [ $? -ne 0 ]; then
|
|
|
- echo "[ERROR] 后端打包失败!请确保已安装 bee 工具。"
|
|
|
+ echo "[ERROR] 后端编译失败!"
|
|
|
exit 1
|
|
|
fi
|
|
|
-echo "[SUCCESS] 后端打包完成。"
|
|
|
+chmod +x $SERVICE_NAME
|
|
|
+echo "[SUCCESS] 后端编译完成。"
|
|
|
echo ""
|
|
|
|
|
|
-# 6. 解压验证
|
|
|
-echo "[6/6] 解压验证 (Output: deploy_output_test)..."
|
|
|
-cd "$ROOT_DIR"
|
|
|
-if [ -d "$OUTPUT_DIR" ]; then
|
|
|
- rm -rf "$OUTPUT_DIR"
|
|
|
-fi
|
|
|
-mkdir -p "$OUTPUT_DIR"
|
|
|
-
|
|
|
-if [ -f "$BACKEND_DIR/shudao-go-backend.tar.gz" ]; then
|
|
|
- tar -xzf "$BACKEND_DIR/shudao-go-backend.tar.gz" -C "$OUTPUT_DIR"
|
|
|
- # 重命名为测试环境包
|
|
|
- mv "$BACKEND_DIR/shudao-go-backend.tar.gz" "$BACKEND_DIR/shudao-go-backend-test.tar.gz"
|
|
|
- echo "[SUCCESS] 已解压到: $OUTPUT_DIR"
|
|
|
-else
|
|
|
- echo "[WARNING] 未找到压缩包,请手动检查。"
|
|
|
+# 6. 停止旧服务
|
|
|
+echo "[6/8] 停止旧服务..."
|
|
|
+pkill -f $SERVICE_NAME 2>/dev/null || true
|
|
|
+sleep 1
|
|
|
+# 确认服务已停止
|
|
|
+if pgrep -f $SERVICE_NAME > /dev/null 2>&1; then
|
|
|
+ echo "[WARNING] 服务未完全停止,强制终止..."
|
|
|
+ pkill -9 -f $SERVICE_NAME 2>/dev/null || true
|
|
|
+ sleep 1
|
|
|
fi
|
|
|
+echo "[SUCCESS] 旧服务已停止。"
|
|
|
echo ""
|
|
|
|
|
|
-echo "========================================================"
|
|
|
-echo " 打包流程全部完成!"
|
|
|
-echo "========================================================"
|
|
|
-echo ""
|
|
|
-echo "部署包位置: $BACKEND_DIR/shudao-go-backend-test.tar.gz"
|
|
|
-echo "解压预览: $OUTPUT_DIR"
|
|
|
-echo "环境: 测试环境 (172.16.29.101)"
|
|
|
+# 7. 部署到目标目录
|
|
|
+echo "[7/8] 部署到 $DEPLOY_DIR..."
|
|
|
+mkdir -p "$DEPLOY_DIR"
|
|
|
+cp "$BACKEND_DIR/$SERVICE_NAME" "$DEPLOY_DIR/"
|
|
|
+cp -r "$BACKEND_DIR/conf" "$DEPLOY_DIR/"
|
|
|
+cp -r "$BACKEND_DIR/assets" "$DEPLOY_DIR/"
|
|
|
+cp -r "$BACKEND_DIR/views" "$DEPLOY_DIR/"
|
|
|
+cp -r "$BACKEND_DIR/static" "$DEPLOY_DIR/" 2>/dev/null || true
|
|
|
+echo "[SUCCESS] 部署完成。"
|
|
|
echo ""
|
|
|
+
|
|
|
+# 8. 启动新服务
|
|
|
+echo "[8/8] 启动新服务..."
|
|
|
+cd "$DEPLOY_DIR"
|
|
|
+nohup ./$SERVICE_NAME > nohup.out 2>&1 &
|
|
|
+sleep 3
|
|
|
+
|
|
|
+# 检查服务状态
|
|
|
+if pgrep -f $SERVICE_NAME > /dev/null 2>&1; then
|
|
|
+ echo "[SUCCESS] 服务已启动!"
|
|
|
+ echo ""
|
|
|
+ echo "========================================================"
|
|
|
+ echo " 测试环境部署完成!"
|
|
|
+ echo "========================================================"
|
|
|
+ echo ""
|
|
|
+ echo "服务状态: 运行中"
|
|
|
+ echo "服务端口: $SERVICE_PORT"
|
|
|
+ echo "部署目录: $DEPLOY_DIR"
|
|
|
+ echo "日志文件: $DEPLOY_DIR/nohup.out"
|
|
|
+ echo ""
|
|
|
+ echo "查看日志: tail -f $DEPLOY_DIR/nohup.out"
|
|
|
+ echo ""
|
|
|
+else
|
|
|
+ echo "[ERROR] 服务启动失败!"
|
|
|
+ echo "请检查日志:"
|
|
|
+ tail -20 "$DEPLOY_DIR/nohup.out"
|
|
|
+ exit 1
|
|
|
+fi
|