本文档详细说明如何在服务器的 /tmp/tmp 目录下拉取 dev 分支代码,并完成前后端的编译与生产环境部署。
确保服务器已安装以下环境:
进入目标目录并拉取远程 dev 分支代码:
# 1. 创建并进入目录
mkdir -p /tmp/tmp
cd /tmp/tmp
# 2. 拉取代码
# 情况A:如果是首次部署(目录为空)
git clone -b dev http://192.168.0.3:3000/ShuDao-SafeAI/ShuDaoMAIN.git .
# 情况B:如果目录已存在且已有仓库
# git checkout dev
# git pull origin dev
注意:请根据实际情况替换 git 仓库地址。
进入前端目录,安装依赖并打包:
# 1. 进入前端目录
cd shudao-vue-frontend
# 2. 安装依赖
npm install --registry=https://registry.npmmirror.com
# 3. 执行构建
npm run build
构建完成后,会在 shudao-vue-frontend/dist 目录下生成静态资源(包含 assets 目录和 index.html)。
将前端生成的静态资源复制到后端对应的目录中:
# 1. 回到项目根目录
cd ..
# 2. 进入后端目录
cd shudao-go-backend
# 3. 清理旧资源(可选,建议执行以避免缓存问题)
rm -rf assets
rm -f views/index.html
# 4. 复制新资源
# 复制静态资源目录 assets
cp -r ../shudao-vue-frontend/dist/assets .
# 复制入口文件 index.html 到 views 目录
cp ../shudao-vue-frontend/dist/index.html views/
说明:
assets/目录存放 JS/CSS/图片等静态资源,后端通过beego.SetStaticPath("/assets", "assets")进行映射。views/index.html是前端入口页面,后端控制器会渲染此模板。
编译 Go 后端服务并启动:
# 1. 整理依赖
go mod tidy
# 2. 编译二进制文件
# GOOS=linux GOARCH=amd64 确保编译为 Linux 可执行文件
GOOS=linux GOARCH=amd64 go build -o shudao-chat-go main.go
# 3. 赋予执行权限
chmod +x shudao-chat-go
# 4. 停止旧服务(如果存在)
# 查找进程ID
# ps -ef | grep shudao-chat-go
# 杀掉进程
# kill -9 <PID>
# 5. 启动新服务 (后台运行)
nohup ./shudao-chat-go > nohup.out 2>&1 &
# 6. 查看启动日志
tail -f nohup.out
检查进程是否存在:
ps -ef | grep shudao-chat-go
访问服务地址,确认页面加载正常且 API 调用成功。
/shudao-vue-frontend: Vue 3 前端项目源码/shudao-go-backend: Beego 后端项目源码
/controllers: 控制器逻辑/models: 数据模型/views: 存放前端入口 HTML 模板/assets: (编译部署时生成) 存放前端静态资源/static: 其他静态文件