- 新增 dev2 分支部署开发2环境 (aiedu.ireborn.com.cn) - 生产部署支持选择性更新租户 [all]/[hua]/[cxw,yy] - 新增测试环境配置文档
This commit is contained in:
130
.drone.yml
130
.drone.yml
@@ -1,8 +1,8 @@
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: deploy-test
|
||||
name: deploy-dev1
|
||||
|
||||
# 测试环境:test 分支触发,部署到生产服务器的开发环境
|
||||
# 开发环境1:test 分支触发,部署到 kpl-dev
|
||||
trigger:
|
||||
branch:
|
||||
- test
|
||||
@@ -20,14 +20,14 @@ steps:
|
||||
port: 22
|
||||
command_timeout: 5m
|
||||
script:
|
||||
- echo "=== 同步代码到测试环境 ==="
|
||||
- echo "=== [开发1] 同步代码到 kpl-dev ==="
|
||||
- cd /root/aiedu
|
||||
- git fetch origin
|
||||
- git checkout test 2>/dev/null || git checkout -b test origin/test
|
||||
- git reset --hard origin/test
|
||||
- echo "代码同步完成"
|
||||
|
||||
- name: rebuild-dev
|
||||
- name: rebuild-dev1
|
||||
image: appleboy/drone-ssh
|
||||
settings:
|
||||
host: 120.79.247.16
|
||||
@@ -37,19 +37,89 @@ steps:
|
||||
port: 22
|
||||
command_timeout: 10m
|
||||
script:
|
||||
- echo "=== 重建测试环境 ==="
|
||||
- echo "=== [开发1] 重建 kpl-dev 环境 ==="
|
||||
- cd /root/aiedu
|
||||
- docker-compose -f docker-compose.dev.yml up -d --build
|
||||
- sleep 5
|
||||
- docker ps | grep kpl-
|
||||
- echo "=== 测试环境部署完成: https://kpl.ireborn.com.cn ==="
|
||||
- echo "=== [开发1] 部署完成: https://kpl.ireborn.com.cn ==="
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: deploy-dev2
|
||||
|
||||
# 开发环境2:dev2 分支触发,部署到 kaopeilian 主站
|
||||
trigger:
|
||||
branch:
|
||||
- dev2
|
||||
event:
|
||||
- push
|
||||
|
||||
steps:
|
||||
- name: sync-code
|
||||
image: appleboy/drone-ssh
|
||||
settings:
|
||||
host: 120.79.247.16
|
||||
username: root
|
||||
password:
|
||||
from_secret: prod_ssh_password
|
||||
port: 22
|
||||
command_timeout: 5m
|
||||
script:
|
||||
- echo "=== [开发2] 同步代码到 kaopeilian 主站 ==="
|
||||
- cd /root/aiedu
|
||||
- git fetch origin
|
||||
- git checkout dev2 2>/dev/null || git checkout -b dev2 origin/dev2
|
||||
- git reset --hard origin/dev2
|
||||
- echo "代码同步完成"
|
||||
|
||||
- name: build-frontend
|
||||
image: appleboy/drone-ssh
|
||||
settings:
|
||||
host: 120.79.247.16
|
||||
username: root
|
||||
password:
|
||||
from_secret: prod_ssh_password
|
||||
port: 22
|
||||
command_timeout: 10m
|
||||
script:
|
||||
- echo "=== [开发2] 编译前端 ==="
|
||||
- cd /root/aiedu/kaopeilian-frontend
|
||||
- npm install --silent
|
||||
- npm run build
|
||||
- echo "前端编译完成"
|
||||
|
||||
- name: rebuild-backend
|
||||
image: appleboy/drone-ssh
|
||||
settings:
|
||||
host: 120.79.247.16
|
||||
username: root
|
||||
password:
|
||||
from_secret: prod_ssh_password
|
||||
port: 22
|
||||
command_timeout: 10m
|
||||
script:
|
||||
- echo "=== [开发2] 重建 kaopeilian 后端 ==="
|
||||
- cd /root/aiedu
|
||||
- docker restart kaopeilian-backend
|
||||
- sleep 5
|
||||
- docker ps | grep kaopeilian-backend
|
||||
- echo "=== [开发2] 部署完成: https://aiedu.ireborn.com.cn ==="
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: deploy-prod
|
||||
|
||||
# 生产环境:main 分支触发,批量更新所有租户
|
||||
# 生产环境:main 分支触发,支持选择性部署租户
|
||||
#
|
||||
# 使用方法:
|
||||
# git commit -m "feat: xxx [all]" - 部署所有租户
|
||||
# git commit -m "feat: xxx [hua]" - 仅部署 hua
|
||||
# git commit -m "feat: xxx [cxw,yy,hl]" - 部署指定多个租户
|
||||
# git commit -m "feat: xxx" - 默认部署所有租户
|
||||
#
|
||||
trigger:
|
||||
branch:
|
||||
- main
|
||||
@@ -67,7 +137,7 @@ steps:
|
||||
port: 22
|
||||
command_timeout: 10m
|
||||
script:
|
||||
- echo "=== 同步代码到生产服务器 ==="
|
||||
- echo "=== [生产] 同步代码到生产服务器 ==="
|
||||
- cd /root/aiedu
|
||||
- git fetch origin
|
||||
- git reset --hard origin/main
|
||||
@@ -83,13 +153,13 @@ steps:
|
||||
port: 22
|
||||
command_timeout: 10m
|
||||
script:
|
||||
- echo "=== 编译前端(所有租户共享)==="
|
||||
- echo "=== [生产] 编译前端(所有租户共享)==="
|
||||
- cd /root/aiedu/kaopeilian-frontend
|
||||
- npm install --silent
|
||||
- npm run build
|
||||
- echo "前端编译完成,所有租户已更新"
|
||||
|
||||
- name: rebuild-backends
|
||||
- name: deploy-tenants
|
||||
image: appleboy/drone-ssh
|
||||
settings:
|
||||
host: 120.79.247.16
|
||||
@@ -99,13 +169,41 @@ steps:
|
||||
port: 22
|
||||
command_timeout: 15m
|
||||
script:
|
||||
- echo "=== 重建所有后端服务 ==="
|
||||
- echo "=== [生产] 部署租户后端 ==="
|
||||
- cd /root/aiedu
|
||||
- docker-compose -f docker-compose.prod-multi.yml up -d --build --no-deps hua-backend yy-backend hl-backend xy-backend fw-backend ex-backend cxw-backend
|
||||
- sleep 10
|
||||
- docker ps | grep backend
|
||||
- echo "=== 生产环境批量更新完成 ==="
|
||||
- echo "租户列表: hua, yy, hl, xy, fw, ex, cxw"
|
||||
- |
|
||||
# 获取 commit message
|
||||
COMMIT_MSG="${DRONE_COMMIT_MESSAGE}"
|
||||
echo "Commit: $COMMIT_MSG"
|
||||
|
||||
# 所有可用租户
|
||||
ALL_TENANTS="hua yy hl xy fw ex cxw"
|
||||
|
||||
# 解析要部署的租户
|
||||
if echo "$COMMIT_MSG" | grep -q '\[all\]'; then
|
||||
TENANTS="$ALL_TENANTS"
|
||||
echo "部署所有租户: $TENANTS"
|
||||
elif echo "$COMMIT_MSG" | grep -oP '\[\K[a-z,]+(?=\])' > /tmp/tenants.txt 2>/dev/null; then
|
||||
TENANTS=$(cat /tmp/tenants.txt | tr ',' ' ')
|
||||
echo "部署指定租户: $TENANTS"
|
||||
else
|
||||
TENANTS="$ALL_TENANTS"
|
||||
echo "默认部署所有租户: $TENANTS"
|
||||
fi
|
||||
|
||||
# 构建 docker-compose 命令
|
||||
BACKEND_SERVICES=""
|
||||
for t in $TENANTS; do
|
||||
BACKEND_SERVICES="$BACKEND_SERVICES ${t}-backend"
|
||||
done
|
||||
|
||||
echo "重建后端服务: $BACKEND_SERVICES"
|
||||
docker-compose -f docker-compose.prod-multi.yml up -d --build --no-deps $BACKEND_SERVICES
|
||||
|
||||
sleep 10
|
||||
docker ps | grep backend
|
||||
echo "=== [生产] 部署完成 ==="
|
||||
echo "已更新租户: $TENANTS"
|
||||
|
||||
volumes:
|
||||
- name: docker-sock
|
||||
|
||||
217
docs/测试环境配置.md
Normal file
217
docs/测试环境配置.md
Normal file
@@ -0,0 +1,217 @@
|
||||
# 考培练系统 - 环境配置与部署指南
|
||||
|
||||
> 最后更新:2026-01-28
|
||||
|
||||
## 一、环境总览
|
||||
|
||||
| 环境 | 分支 | 域名 | 用途 |
|
||||
|------|------|------|------|
|
||||
| **开发1 (kpl-dev)** | `test` | https://kpl.ireborn.com.cn | 功能开发测试 |
|
||||
| **开发2 (主站)** | `dev2` | https://aiedu.ireborn.com.cn | 集成测试/预发布 |
|
||||
| **生产环境** | `main` | 各租户域名 | 正式生产 |
|
||||
| **超级管理后台** | - | https://admin.kpl.ireborn.com.cn | SaaS管理 |
|
||||
|
||||
---
|
||||
|
||||
## 二、租户列表
|
||||
|
||||
| 租户代码 | 名称 | 域名 | 前端端口 | 后端端口 |
|
||||
|----------|------|------|----------|----------|
|
||||
| hua | 华尔倍丽 | https://hua.ireborn.com.cn | 3010 | 8010 |
|
||||
| yy | 杨扬宠物 | https://yy.ireborn.com.cn | 3011 | 8011 |
|
||||
| hl | 武汉禾丽 | https://hl.ireborn.com.cn | 3012 | 8012 |
|
||||
| xy | 芯颜定制 | https://xy.ireborn.com.cn | 3013 | 8013 |
|
||||
| fw | 飞沃 | https://fw.ireborn.com.cn | 3014 | 8014 |
|
||||
| ex | 恩喜成都总院 | https://ex.ireborn.com.cn | 3015 | 8015 |
|
||||
| cxw | 崔曦文 | https://cxw.kpl.ireborn.com.cn | 3016 | 8016 |
|
||||
|
||||
---
|
||||
|
||||
## 三、CI/CD 部署方式
|
||||
|
||||
### 3.1 开发1环境 (kpl-dev)
|
||||
|
||||
```bash
|
||||
# 推送到 test 分支自动部署
|
||||
git push cicd test
|
||||
```
|
||||
|
||||
- **触发条件**:`test` 分支 push
|
||||
- **部署目标**:kpl-dev 容器组
|
||||
- **访问地址**:https://kpl.ireborn.com.cn
|
||||
|
||||
---
|
||||
|
||||
### 3.2 开发2环境 (主站)
|
||||
|
||||
```bash
|
||||
# 推送到 dev2 分支自动部署
|
||||
git push cicd dev2
|
||||
```
|
||||
|
||||
- **触发条件**:`dev2` 分支 push
|
||||
- **部署目标**:kaopeilian 主站容器
|
||||
- **访问地址**:https://aiedu.ireborn.com.cn
|
||||
|
||||
---
|
||||
|
||||
### 3.3 生产环境 (租户)
|
||||
|
||||
```bash
|
||||
# 推送到 main 分支,通过 commit message 控制部署范围
|
||||
git push cicd main
|
||||
```
|
||||
|
||||
#### 部署所有租户
|
||||
|
||||
```bash
|
||||
git commit -m "feat: 新功能上线 [all]"
|
||||
git push cicd main
|
||||
```
|
||||
|
||||
#### 部署单个租户
|
||||
|
||||
```bash
|
||||
git commit -m "fix: 修复问题 [hua]"
|
||||
git push cicd main
|
||||
```
|
||||
|
||||
#### 部署多个租户
|
||||
|
||||
```bash
|
||||
git commit -m "feat: 功能更新 [cxw,yy,hl]"
|
||||
git push cicd main
|
||||
```
|
||||
|
||||
#### 默认行为
|
||||
|
||||
```bash
|
||||
# 不带标签默认部署所有租户
|
||||
git commit -m "feat: 常规更新"
|
||||
git push cicd main
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、手动部署命令
|
||||
|
||||
### 4.1 SSH 登录服务器
|
||||
|
||||
```bash
|
||||
ssh root@120.79.247.16
|
||||
# 密码: Rxm88808
|
||||
```
|
||||
|
||||
### 4.2 重启单个租户后端
|
||||
|
||||
```bash
|
||||
cd /root/aiedu
|
||||
docker restart cxw-backend
|
||||
```
|
||||
|
||||
### 4.3 重建单个租户后端
|
||||
|
||||
```bash
|
||||
cd /root/aiedu
|
||||
docker-compose -f docker-compose.prod-multi.yml up -d --build --no-deps cxw-backend
|
||||
```
|
||||
|
||||
### 4.4 查看日志
|
||||
|
||||
```bash
|
||||
docker logs -f cxw-backend --tail 100
|
||||
```
|
||||
|
||||
### 4.5 重新编译前端(所有租户共享)
|
||||
|
||||
```bash
|
||||
cd /root/aiedu/kaopeilian-frontend
|
||||
npm run build
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、数据库连接
|
||||
|
||||
### 5.1 生产共享 MySQL (prod-mysql)
|
||||
|
||||
- **端口**:3309
|
||||
- **用户**:root
|
||||
- **密码**:ProdMySQL2025!@#
|
||||
- **数据库**:kaopeilian_hua, kaopeilian_yy, kaopeilian_hl, kaopeilian_xy, kaopeilian_fw, kaopeilian_ex, kaopeilian_cxw
|
||||
|
||||
### 5.2 开发测试 MySQL (kpl-mysql-dev)
|
||||
|
||||
- **端口**:3308
|
||||
- **用户**:root
|
||||
- **密码**:nj861021
|
||||
- **数据库**:kaopeilian
|
||||
|
||||
### 5.3 主站 MySQL (kaopeilian-mysql)
|
||||
|
||||
- **端口**:3307
|
||||
- **用户**:root
|
||||
- **密码**:nj861021
|
||||
- **数据库**:kaopeilian
|
||||
|
||||
---
|
||||
|
||||
## 六、容器管理
|
||||
|
||||
### 当前运行容器统计
|
||||
|
||||
| 类型 | 数量 |
|
||||
|------|------|
|
||||
| 前端容器 | 11 |
|
||||
| 后端容器 | 11 |
|
||||
| Redis | 10 |
|
||||
| MySQL | 4 |
|
||||
| Nginx | 1 |
|
||||
| **总计** | **37** |
|
||||
|
||||
### 查看所有容器
|
||||
|
||||
```bash
|
||||
docker ps --format 'table {{.Names}}\t{{.Status}}'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 七、测试账户
|
||||
|
||||
| 角色 | 用户名 | 密码 |
|
||||
|------|--------|------|
|
||||
| 系统管理员 | admin | Admin123! |
|
||||
| 培训经理 | manager | Admin123! |
|
||||
| 测试学员 | testuser | Admin123! |
|
||||
|
||||
---
|
||||
|
||||
## 八、注意事项
|
||||
|
||||
1. **前端共享**:所有生产租户共享同一套前端代码,编译一次全部更新
|
||||
2. **后端独立**:每个租户有独立的后端容器和数据库
|
||||
3. **域名解析**:
|
||||
- `*.ireborn.com.cn` 解析到 120.79.242.43(SCRM服务器)
|
||||
- `*.kpl.ireborn.com.cn` 解析到 120.79.247.16(考培练服务器)
|
||||
4. **SSL证书**:使用 Let's Encrypt,自动续期
|
||||
|
||||
---
|
||||
|
||||
## 九、Git 仓库配置
|
||||
|
||||
```bash
|
||||
# 查看远程仓库
|
||||
git remote -v
|
||||
|
||||
# origin: GitHub 源代码仓库
|
||||
# cicd: Gitea CI/CD 触发仓库
|
||||
|
||||
# 常规开发
|
||||
git push origin main
|
||||
|
||||
# 触发部署
|
||||
git push cicd test # 部署开发1
|
||||
git push cicd dev2 # 部署开发2
|
||||
git push cicd main # 部署生产
|
||||
```
|
||||
Reference in New Issue
Block a user