All checks were successful
continuous-integration/drone/push Build is passing
新增内容: - 部署架构图和流程说明 - 详细的部署步骤(4个阶段,耗时约5-6分钟) - 日常开发使用方法 - .drone.yml 配置文件示例 - systemd 服务管理命令 - 环境要求说明 - 常见问题排查和手动回滚方法 - 部署历史查看入口 开发者现在可以通过 README.md 快速了解: 1. 如何触发自动部署(git push origin main) 2. 部署过程中发生了什么 3. 如何查看部署状态和日志 4. 遇到问题如何排查 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
220 lines
7.1 KiB
Markdown
220 lines
7.1 KiB
Markdown
## 版权声明
|
||
* BladeX是一个商业化软件,系列产品知识产权归**上海布雷德科技有限公司**独立所有
|
||
* 您一旦开始复制、下载、安装或者使用本产品,即被视为完全理解并接受本协议的各项条款
|
||
* 更多详情请看:[BladeX商业授权许可协议](https://license.bladex.cn)
|
||
|
||
## 答疑流程
|
||
>1. 遇到问题或Bug
|
||
>2. 业务型问题打断点调试尝试找出问题所在
|
||
>3. 系统型问题通过百度、谷歌、社区查找解决方案
|
||
>4. 未解决问题则进入技术社区进行发帖提问:[https://sns.bladex.cn](https://sns.bladex.cn)
|
||
>5. 将帖子地址发至商业群,特别简单三言两语就能描述清楚的也可在答疑时间内发至商业群提问
|
||
>6. 发帖的时候一定要描述清楚,详细描述遇到问题的**重现步骤**、**报错详细信息**、**相关代码与逻辑**、**使用软件版本**以及**操作系统版本**,否则随意发帖提问将会提高我们的答疑难度。
|
||
|
||
## 答疑时间
|
||
* 工作日:9:00 ~ 17:00 提供答疑,周末、节假日休息,暂停答疑
|
||
* 请勿**私聊提问**,以免被其他用户的消息覆盖从而无法获得答疑
|
||
* 答疑时间外遇到问题可以将问题发帖至[技术社区](https://sns.bladex.cn),我们后续会逐个回复
|
||
|
||
## 授权范围
|
||
* 专业版:只可用于**个人学习**及**个人私活**项目,不可用于公司或团队,不可泄露给任何第三方
|
||
* 企业版:可用于**企业名下**的任何项目,企业版员工在**未购买**专业版授权前,只授权开发**所在授权企业名下**的项目,**不得将BladeX用于个人私活**
|
||
* 共同遵守:若甲方需要您提供项目源码,则需代为甲方购买BladeX企业授权,甲方购买后续的所有项目都无需再次购买授权
|
||
|
||
## 商用权益
|
||
* ✔️ 遵守[商业协议](https://license.bladex.cn)的前提下,将BladeX系列产品用于授权范围内的商用项目,并上线运营
|
||
* ✔️ 遵守[商业协议](https://license.bladex.cn)的前提下,不限制项目数,不限制服务器数
|
||
* ✔️ 遵守[商业协议](https://license.bladex.cn)的前提下,将自行编写的业务代码申请软件著作权
|
||
|
||
## 何为侵权
|
||
* ❌ 不遵守商业协议,私自销售商业源码
|
||
* ❌ 以任何理由将BladeX源码用于申请软件著作权
|
||
* ❌ 将商业源码以任何途径任何理由泄露给未授权的单位或个人
|
||
* ❌ 开发完毕项目,没有为甲方购买企业授权,向甲方提供了BladeX代码
|
||
* ❌ 基于BladeX拓展研发与BladeX有竞争关系的衍生框架,并将其开源或销售
|
||
|
||
## 侵权后果
|
||
* 情节较轻:第一次发现警告处理
|
||
* 情节较重:封禁账号,踢出商业群,并保留追究法律责任的权利
|
||
* 情节严重:与本地律师事务所合作,以公司名义起诉侵犯计算机软件著作权
|
||
|
||
## 举报有奖
|
||
* 向官方提供有用线索并成功捣毁盗版个人或窝点,将会看成果给予 500~10000 不等的现金奖励
|
||
* 官方唯一指定QQ:1272154962
|
||
|
||
---
|
||
|
||
## 🚀 自动化部署
|
||
|
||
### Drone CI/CD 自动部署配置
|
||
|
||
本项目已配置 Drone CI/CD 实现代码推送后的全自动编译、部署流程。
|
||
|
||
#### 📋 部署架构
|
||
|
||
```
|
||
开发者 Push 代码
|
||
↓
|
||
Gitea 仓库(git.waypeak.work)
|
||
↓ [Webhook 触发]
|
||
Drone CI Server(154.30.6.21:8080)
|
||
↓ [Runner 执行]
|
||
编译 BladeX 框架 → 编译后端项目 → SCP 传输 JAR → systemctl 重启服务 → 健康检查
|
||
↓
|
||
生产服务器部署完成(154.30.6.21:8123)
|
||
```
|
||
|
||
#### ⚙️ 部署配置
|
||
|
||
**服务器信息:**
|
||
- Drone Server: http://154.30.6.21:8080
|
||
- 生产环境: 154.30.6.21:8123
|
||
- 部署方式: systemd 服务管理
|
||
|
||
**部署步骤(全自动):**
|
||
1. **编译完整项目**(约4-5分钟)
|
||
- 克隆 BladeX 框架代码(martial-tool)
|
||
- 编译框架并安装到 Maven 本地仓库
|
||
- 编译后端项目(martial-master)
|
||
- 生成 blade-api.jar(约236MB)
|
||
|
||
2. **传输构建产物**(约10-20秒)
|
||
- 使用 SCP 传输 JAR 文件到生产服务器
|
||
- 目标路径: `/app/martial-backend/bin/blade-api.jar`
|
||
|
||
3. **部署到生产环境**(约3秒)
|
||
- 执行 `systemctl restart martial-backend`
|
||
- systemd 自动管理进程生命周期
|
||
- 自动重启、日志管理、故障恢复
|
||
|
||
4. **健康检查**(约45秒)
|
||
- 等待 Spring Boot 应用完全启动
|
||
- 检查健康端点: `/actuator/health`
|
||
- 验证部署成功
|
||
|
||
**总耗时:** 约 5-6 分钟
|
||
|
||
#### 🔧 使用方法
|
||
|
||
**日常开发流程:**
|
||
|
||
```bash
|
||
# 1. 修改代码
|
||
vim src/main/java/...
|
||
|
||
# 2. 提交代码
|
||
git add .
|
||
git commit -m "你的提交信息"
|
||
|
||
# 3. 推送到 main 分支(自动触发部署)
|
||
git push origin main
|
||
|
||
# 4. 查看部署进度
|
||
# 访问 Drone UI: http://154.30.6.21:8080
|
||
# 或等待约 5-6 分钟后直接访问生产环境
|
||
```
|
||
|
||
**部署完成后:**
|
||
- 访问后端 API: http://154.30.6.21:8123
|
||
- 查看 API 文档: http://154.30.6.21:8123/doc.html
|
||
- 健康检查: http://154.30.6.21:8123/actuator/health
|
||
|
||
#### 📂 配置文件
|
||
|
||
`.drone.yml` - Drone CI/CD 配置文件
|
||
|
||
```yaml
|
||
steps:
|
||
- name: 编译完整项目
|
||
image: maven:3.9-eclipse-temurin-17
|
||
commands:
|
||
- git clone https://git.waypeak.work/martial/martial-tool.git
|
||
- cd martial-tool && mvn clean install -DskipTests -q
|
||
- cd /drone/src && mvn clean package -DskipTests
|
||
|
||
- name: 传输构建产物
|
||
image: appleboy/drone-scp
|
||
settings:
|
||
host: 154.30.6.21
|
||
target: /app/martial-backend/bin/
|
||
|
||
- name: 部署到生产环境
|
||
image: appleboy/drone-ssh
|
||
settings:
|
||
script:
|
||
- systemctl restart martial-backend
|
||
|
||
- name: 健康检查
|
||
image: curlimages/curl:latest
|
||
commands:
|
||
- sleep 45
|
||
- curl -f http://154.30.6.21:8123/actuator/health
|
||
```
|
||
|
||
#### 🔐 Systemd 服务配置
|
||
|
||
服务名称: `martial-backend.service`
|
||
|
||
```bash
|
||
# 查看服务状态
|
||
systemctl status martial-backend
|
||
|
||
# 查看日志
|
||
journalctl -u martial-backend -f
|
||
|
||
# 手动重启
|
||
systemctl restart martial-backend
|
||
|
||
# 日志文件位置
|
||
/app/martial-backend/logs/application.log
|
||
/app/martial-backend/logs/error.log
|
||
```
|
||
|
||
#### 🛠️ 环境要求
|
||
|
||
**生产服务器:**
|
||
- JDK 17 (通过 sdkman 管理)
|
||
- MySQL 8.0 (端口: 33066)
|
||
- Redis 7 (端口: 63379)
|
||
- systemd 服务管理
|
||
|
||
**CI/CD 服务器:**
|
||
- Drone Server + Drone Runner (Docker 部署)
|
||
- Maven 3.9 + Eclipse Temurin JDK 17 (CI 容器镜像)
|
||
|
||
#### ⚠️ 注意事项
|
||
|
||
1. **仅 main 分支触发自动部署**
|
||
- 其他分支不会触发部署流程
|
||
- 开发分支请使用 feature/* 或 dev 分支
|
||
|
||
2. **部署失败排查**
|
||
```bash
|
||
# 查看 Drone 构建日志
|
||
访问: http://154.30.6.21:8080
|
||
|
||
# 查看应用日志
|
||
ssh root@154.30.6.21
|
||
tail -f /app/martial-backend/logs/application.log
|
||
|
||
# 检查服务状态
|
||
systemctl status martial-backend
|
||
```
|
||
|
||
3. **手动回滚**
|
||
```bash
|
||
# 如需回滚到之前的版本
|
||
# 1. 找到之前成功的 JAR 文件备份
|
||
# 2. 替换当前 JAR
|
||
# 3. 重启服务
|
||
systemctl restart martial-backend
|
||
```
|
||
|
||
#### 📊 部署历史
|
||
|
||
可通过 Drone UI 查看所有部署历史记录:
|
||
- 访问: http://154.30.6.21:8080
|
||
- 查看每次构建的详细日志
|
||
- 查看每个步骤的执行时间和状态
|
||
|
||
--- |