系统环境
- ubuntu, 腾讯云
- 磁盘剩余21G
- 已安装docker , 使用docker compose运行项目
使用git方式拉取
- 建立服务器信任
text
# 生成公钥
ssh-keygen -t ed25519 -C "gitee-deploy"
# 获取公钥复制到gitee上的ssh公钥配置中```
cat ~/.ssh/id_ed25519.pub
# 拉取代码
git clone git@gitee.com:**/**.git
部署脚本
bash
#!/bin/bash
set -e
echo "======================================"
echo " 🚀 开始部署 neurocontrol"
echo "======================================"
# ===== 基本配置 =====
PROJECT_DIR="/mnt/data/gitee/neurocontrol"
BRANCH="master"
BACKEND_DIR="$PROJECT_DIR/backend"
FRONTEND_DIR="$PROJECT_DIR/frontend"
DOCKER_DIR="$PROJECT_DIR/docker"
BACKEND_JAR_DIR="$DOCKER_DIR/volumes/backend/jar"
FRONTEND_DIST_DIR="$DOCKER_DIR/volumes/frontend"
COMPOSE_CMD="docker compose"
# ===== 基础校验 =====
command -v git >/dev/null || { echo "❌ git 未安装"; exit 1; }
command -v mvn >/dev/null || { echo "❌ maven 未安装"; exit 1; }
command -v npm >/dev/null || { echo "❌ npm 未安装"; exit 1; }
command -v docker >/dev/null || { echo "❌ docker 未安装"; exit 1; }
# ===== 拉取最新代码 =====
echo "🔄 更新源码"
cd "$PROJECT_DIR"
git fetch origin
git checkout "$BRANCH"
git pull origin "$BRANCH"
# ===== 构建后端 =====
echo "⚙️ 构建后端(Maven)"
cd "$BACKEND_DIR"
mvn clean package -DskipTests
echo "📦 拷贝后端 jar"
mkdir -p "$BACKEND_JAR_DIR"
cp target/*.jar "$BACKEND_JAR_DIR"/
# ===== 构建前端 =====
echo "🎨 构建前端(npm)"
cd "$FRONTEND_DIR"
npm install
npm run build
echo "📦 发布前端静态文件"
rm -rf "$FRONTEND_DIST_DIR"/*
cp -r dist/* "$FRONTEND_DIST_DIR"/
# ===== Docker Compose 启动 =====
echo "🐳 启动 Docker Compose"
cd "$DOCKER_DIR"
$COMPOSE_CMD up -d
echo "======================================"
echo " ✅ 部署完成"
echo "======================================"
程序层级图
text
/mnt/data/gitee/neurocontrol/
├── backend/ # 后端源码(Java / Spring Boot)
│ ├── pom.xml
│ └── src/
│
├── frontend/ # 前端源码(Vue / React / Vite 等)
│ ├── package.json
│ ├── package-lock.json
│ └── src/
│
├── docker/ # 🚀 Docker 部署核心目录
│ ├── docker-compose.yml # Docker Compose 编排文件(启动入口)
│ │
│ ├── volumes/ # 所有容器挂载的数据卷
│ │ ├── backend/
│ │ │ └── jar/
│ │ │ └── neurocontrol.jar # ← mvn package 输出产物
│ │ │
│ │ ├── frontend/
│ │ │ ├── index.html
│ │ │ ├── assets/
│ │ │ └── static/ # ← npm run build 输出产物
│ │ │
│ │ ├── mysql/
│ │ │ └── data/ # MySQL 持久化数据
│ │ │
│ │ └── redis/
│ │ └── data/ # Redis 持久化数据
│ │
│ ├── mysql/
│ │ └── my.cnf # MySQL 配置(可选)
│ │
│ └── nginx/
│ └── nginx.conf # 前端反向代理 / 静态资源
│
├── .git/
├── .gitignore
└── README.md
安装nvm
- apt install -y git
- apt install -y maven
- 使用镜像安装nvm
bash
export NVM_SOURCE="https://gitee.com/mirrors/nvm.git"
curl -fsSL https://gitee.com/mirrors/nvm/raw/v0.39.7/install.sh | bash
- 安装node
此时检测node版本node --version