| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- #!/bin/bash
- # 遇到错误立即退出
- set -e
- echo "========================================================"
- echo " ShuDao SafeAI 测试环境一键部署脚本 (Linux)"
- echo "========================================================"
- echo ""
- # 设置路径变量
- ROOT_DIR=$(pwd)
- FRONTEND_DIR="$ROOT_DIR/shudao-vue-frontend"
- BACKEND_DIR="$ROOT_DIR/shudao-go-backend"
- DEPLOY_DIR="/opt/www/shudao-go-backend"
- SERVICE_NAME="shudao-go-backend"
- SERVICE_PORT=22001
- # 1. 前端构建
- echo "[1/8] 正在构建前端项目 (Vue)..."
- cd "$FRONTEND_DIR"
- npm run build
- if [ $? -ne 0 ]; then
- echo "[ERROR] 前端构建失败!请检查错误信息。"
- exit 1
- fi
- echo "[SUCCESS] 前端构建完成。"
- echo ""
- # 2. 清理后端旧资源
- echo "[2/8] 清理后端旧资源..."
- cd "$ROOT_DIR"
- 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/8] 整合前端资源到后端..."
- mkdir -p "$BACKEND_DIR/assets"
- mkdir -p "$BACKEND_DIR/views"
- cp -r "$FRONTEND_DIR/dist/assets/"* "$BACKEND_DIR/assets/"
- cp "$FRONTEND_DIR/dist/index.html" "$BACKEND_DIR/views/index.html"
- echo "[SUCCESS] 资源整合完成。"
- echo ""
- # 4. 复制测试环境配置
- 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/8] 正在编译后端 (Target: Linux/amd64)..."
- cd "$BACKEND_DIR"
- GOOS=linux GOARCH=amd64 go build -o $SERVICE_NAME main.go
- if [ $? -ne 0 ]; then
- echo "[ERROR] 后端编译失败!"
- exit 1
- fi
- chmod +x $SERVICE_NAME
- echo "[SUCCESS] 后端编译完成。"
- echo ""
- # 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 ""
- # 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
|