Files
rent/deploy/README.md
T
2026-06-01 18:22:30 +08:00

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

  1. 在 GitLab 中打开项目 → Settings → CI/CD → Runners
  2. 复制 registration token
  3. 在服务器上执行注册:
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 会自动运行流水线:

  1. install 阶段 — 安装依赖
  2. build 阶段 — 并行构建 server / merchant / platform
  3. 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