4.1 KiB
4.1 KiB
部署指南
目录结构
deploy/
├── docker/
│ ├── docker-compose.yml # Docker Compose 编排文件
│ ├── Dockerfile.server # 后端服务镜像
│ ├── Dockerfile.merchant # 商家后台镜像
│ ├── Dockerfile.platform # 平台后台镜像
│ └── .env.example # 环境变量模板
└── nginx/
├── api.conf # API 反向代理配置
├── merchant.conf # 商家后台 Nginx 配置
└── platform.conf # 平台后台 Nginx 配置
服务端口
| 服务 | 端口 | 说明 |
|---|---|---|
| MySQL | 3306 | 数据库 |
| Redis | 6379 | 缓存 |
| Server | 3000 | 后端 API |
| Merchant Admin | 8081 | 商家管理后台 |
| Platform Admin | 8082 | 平台管理后台 |
一、快速部署(手动)
1. 配置环境变量
cd deploy/docker
cp .env.example .env
# 编辑 .env,填入真实的密码和密钥
vi .env
2. 构建并启动
# 方式一:使用 Makefile(推荐)
make deploy
# 方式二:直接使用 docker-compose
docker-compose -f deploy/docker/docker-compose.yml up -d --build
3. 常用命令
make help # 查看所有命令
make logs # 查看日志
make logs-server # 查看后端日志
make ps # 查看容器状态
make restart # 重启服务
make down # 停止服务
make clean # 清理所有数据(包括数据库)
二、GitLab CI/CD 自动化部署
前提条件
- 服务器已安装 Docker 和 Docker Compose
- 服务器已部署 GitLab 实例
- 项目代码已推送到 GitLab 仓库
第 1 步:安装 GitLab Runner
# 添加 GitLab Runner 仓库
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
# 安装
sudo apt install gitlab-runner
第 2 步:注册 Runner
- 在 GitLab 中打开项目 → Settings → CI/CD → Runners
- 复制 registration token
- 在服务器上执行注册:
sudo gitlab-runner register
按提示填写:
| 项目 | 值 |
|---|---|
| GitLab URL | http://你的GitLab域名/ |
| Token | 从 Settings 页面复制的 token |
| Description | rent-deploy-runner |
| Tags | rent-deploy |
| Executor | shell |
第 3 步:配置 Runner 权限
# 让 gitlab-runner 用户可以执行 docker 命令
sudo usermod -aG docker gitlab-runner
# 全局安装 pnpm
sudo -u gitlab-runner npm install -g pnpm
# 验证
sudo -u gitlab-runner docker ps
sudo -u gitlab-runner pnpm --version
第 4 步:配置 CI/CD 变量
在 GitLab 中打开 Settings → CI/CD → Variables,添加:
| 变量名 | 说明 | 勾选 Masked |
|---|---|---|
PROD_DB_PASSWORD |
MySQL root 密码 | ✅ |
PROD_JWT_SECRET |
JWT 签名密钥 | ✅ |
第 5 步:创建环境变量文件
# 在服务器项目目录下创建 .env(只需一次)
cd /path/to/repo/deploy/docker
cp .env.example .env
vi .env
# 填入 PROD_DB_PASSWORD 和 PROD_JWT_SECRET 的真实值
第 6 步:推送代码触发部署
git push origin prod
推送后 GitLab 会自动运行流水线:
- install 阶段 — 安装依赖
- build 阶段 — 并行构建 server / merchant / platform
- deploy 阶段 — 停止旧服务 → 构建镜像 → 启动新服务
可以在 GitLab → CI/CD → Pipelines 页面查看实时日志。
三、故障排查
查看服务状态
make ps
查看日志
# 所有服务
make logs
# 仅后端
make logs-server
# 特定容器
docker logs rent-mysql
docker logs rent-redis
docker logs rent-server
数据库连接失败
# 检查 MySQL 是否就绪
docker exec rent-mysql mysqladmin ping -h localhost -u root -p
# 进入 MySQL 手动检查
docker exec -it rent-mysql mysql -u root -p rent_platform
重建某个服务
# 只重建后端
docker-compose -f deploy/docker/docker-compose.yml up -d --build server
# 只重建商家后台
docker-compose -f deploy/docker/docker-compose.yml up -d --build merchant-admin