| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #!/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"
- OUTPUT_DIR="$ROOT_DIR/deploy_output"
- # 1. 前端构建
- echo "[1/5] 正在构建前端项目 (Vue)..."
- cd "$FRONTEND_DIR"
- npm run build
- if [ $? -ne 0 ]; then
- echo "[ERROR] 前端构建失败!请检查错误信息。"
- exit 1
- fi
- echo "[SUCCESS] 前端构建完成。"
- echo ""
- # 2. 清理后端旧资源
- echo "[2/5] 清理后端旧资源..."
- 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
- echo "[SUCCESS] 清理完成。"
- echo ""
- # 3. 复制新资源
- echo "[3/5] 整合前端资源到后端..."
- # 确保目标目录存在
- mkdir -p "$BACKEND_DIR/assets"
- mkdir -p "$BACKEND_DIR/views"
- # 复制 assets 目录内容
- # 注意:cp -r source/* dest/ 会将内容复制进去
- cp -r "$FRONTEND_DIR/dist/assets/"* "$BACKEND_DIR/assets/"
- # 复制 index.html
- cp "$FRONTEND_DIR/dist/index.html" "$BACKEND_DIR/views/index.html"
- echo "[SUCCESS] 资源整合完成。"
- echo ""
- # 4. 后端打包 (Linux amd64)
- echo "[4/5] 正在打包后端 (Target: Linux/amd64)..."
- cd "$BACKEND_DIR"
- # 显式指定 GOOS=linux 以确保生成 Linux 二进制文件
- bee pack -be GOOS=linux -be GOARCH=amd64
- if [ $? -ne 0 ]; then
- echo "[ERROR] 后端打包失败!请确保已安装 bee 工具 (go install github.com/beego/bee/v2@latest)。"
- exit 1
- fi
- echo "[SUCCESS] 后端打包完成。"
- echo ""
- # 5. 解压验证
- echo "[5/5] 解压验证 (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] 未找到压缩包,可能打包名称不匹配,请手动检查 shudao-go-backend 目录。"
- fi
- echo ""
- echo "========================================================"
- echo " 打包流程全部完成!"
- echo "========================================================"
- echo ""
- echo "部署包位置: $BACKEND_DIR/shudao-go-backend.tar.gz"
- echo "解压预览: $OUTPUT_DIR"
- echo ""
|