Jelajahi Sumber

Update:更新readme

XieXing 3 bulan lalu
induk
melakukan
61f639ca86
2 mengubah file dengan 126 tambahan dan 76 penghapusan
  1. 63 37
      build_release.sh
  2. 63 39
      build_test.sh

+ 63 - 37
build_release.sh

@@ -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"
+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,44 +45,72 @@ echo "[SUCCESS] 资源整合完成。"
 echo ""
 
 # 4. 复制生产环境配置
-echo "[4/6] 复制生产环境配置..."
+echo "[4/8] 复制生产环境配置..."
 mkdir -p "$BACKEND_DIR/conf"
 cp "$BACKEND_DIR/conf/app.conf.prod" "$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)..."
-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"
-    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.tar.gz"
-echo "解压预览:   $OUTPUT_DIR"
-echo "环境: 生产环境 (aqai.shudaodsj.com)"
+# 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

+ 63 - 39
build_test.sh

@@ -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