Files
martial-master/docs/CI-CD部署总结.md
n72595987@gmail.com 1c96ef4f6f
All checks were successful
continuous-integration/drone/push Build is passing
refactor: 重组项目目录结构
将 doc/ 目录重组为更标准的结构:

目录变更:
- doc/ → docs/ (文档目录,只包含 .md 文件)
- doc/sql/ → database/ (数据库脚本目录)
  - database/bladex/ (BladeX 框架数据库)
  - database/flowable/ (Flowable 工作流数据库)
  - database/martial-db/ (武术系统业务数据库)
  - database/upgrade/ (数据库升级脚本)
- doc/script/ → scripts/ (部署和运维脚本)
  - scripts/docker/ (Docker 部署脚本)
  - scripts/fatjar/ (Fat JAR 启动脚本)

优势:
- 符合标准项目结构规范
- 文档、数据库、脚本分离更清晰
- 便于维护和查找

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 10:53:50 +08:00

7.2 KiB
Raw Blame History

武术管理系统 CI/CD 自动化部署 - 完成总结

🎉 部署状态

已完成的工作

1. Drone CI/CD 服务器部署154.30.6.21

  • Drone Server: http://154.30.6.21:8080 运行中
  • Drone Runner: 已连接并轮询任务
  • 管理员账号: JohnSion 已创建
  • RPC Secret: 55db397727eb7def59f3f588c0b503e0 已配置

2. 部署服务器基础设施

  • MySQL 8.0: 运行中(端口 3306

    • 数据库: martial_db
    • 表数量: 53 张
    • 测试数据: 2场比赛、10名运动员、9个项目
    • 密码: WtcSecure901faf1ac4d32e2bPwd
  • Redis 7-alpine: 运行中(端口 6379

    • 密码: RedisSecure2024MartialXyZ789ABC
    • 持久化: AOF 模式
  • Docker Compose: 配置完成

    • 位置: /app/martial/docker-compose.yml
    • 网络: martial-network

3. CI/CD 配置文件

  • 后端仓库 (martial-master):

    • .drone.yml 已创建并提交
    • Dockerfile 已创建并提交
    • SSH Secret 你已配置
  • 前端仓库 (martial-web):

    • .drone.yml 已创建并提交
    • Dockerfile 已创建并提交
    • nginx.conf 已创建并提交
    • SSH Secret 你已配置

📋 待完成的步骤

步骤1推送代码到 Gitea ⚠️ 需要你操作

方法A添加 SSH 公钥到 Gitea推荐

  1. 复制以下公钥:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCzXo91kuSXHfsuqvgm1hdquE+JuaEn2qJB35+BxxFRKFXhwGoMLAAP6kEnawvRPpugfZ7C0bG/6zgQ4E32UwtihaDAEgweyLWKPDW4GEcDofQdgrprBPAoODZc4soAIH3kQ/LePNMsWnwDtc7BANCCmtEk0hnXvMbbFVD6U5MOwfvofzkbCE7OPxOLz+dTNMs8nxOuo9T00rK5julPeCJapJWUbEXXG4X+G2yY7Otx7X1qv7BHE31deRHIUonWT8Wh4EUiyOxUCmXC04l35yOF1rt2dBVa2AHwbpNiKjWVupSoiq+32PTQKoqc85hDRSEueXXjy/GPSCG/MFaLl4LwGMj0Ok/oirlB5RlhjvQpKrvpmYfUg+rS5rhsmKd5dmvzOtyadFoNamZF1g9nNFSmrXh1yhejIkAbUBTJvtuH66fSkH3WDIEp2/TnGr/XVsbAh717meNHMl92Yv/CAQT3JhSMoMA+D1xZWVrRCpMyU05WAepTv+AQOrxm0rvb7MOHVTgBdzmQHVLFFKImYtKDQjhtZnx6cuk/+Y7MmUT/rmdxvjaPpJe/JYmm+dOLnuMU0vtBksTlP7J+xymT5n69P7sh0AtFxRTh4SZaoZu4zDeh98GsbTFSoVgXe4nc7vyBmrKL9pu0OCo5wrrdqa6wzVoyZzUAeC888dFa1XBQQw== katana-import@test.johnsion.club
  1. 登录 https://git.waypeak.work
  2. 进入 设置 → SSH / GPG 密钥
  3. 添加上面的公钥

方法B在本地推送代码

在你本地机器上:

# 后端
cd martial-master
git pull
git push origin main

# 前端
cd martial-web
git pull
git push origin main

步骤2在 Drone UI 中激活仓库 ⚠️ 需要你操作

  1. 访问 http://154.30.6.21:8080
  2. 使用 Gitea 账号登录JohnSion
  3. 授权 Drone 访问你的仓库
  4. 在仓库列表中点击 ACTIVATE
    • martial/martial-master
    • martial/martial-web

步骤3触发首次构建推送代码后自动触发

代码推送后Drone 会自动:

  1. 拉取代码
  2. 编译项目
  3. 构建 Docker 镜像
  4. 部署到生产服务器
  5. 执行健康检查

或者手动触发:

  1. 进入 Drone UI 中的仓库页面
  2. 点击右上角 "NEW BUILD"
  3. 选择 main 分支
  4. 点击 "CREATE"

🚀 自动化部署流程

后端部署流程

推送代码到 main 分支
    ↓
Drone CI 检测到代码变更
    ↓
1. 编译 BladeX 框架(缓存 Maven 依赖)
    ↓
2. 编译后端项目并打包 JAR
    ↓
3. 构建 Docker 镜像
    ↓
4. SSH 到部署服务器154.30.6.21
    ↓
5. 拉取最新镜像并重启容器
    ↓
6. 健康检查 (http://154.30.6.21:8123/actuator/health)
    ↓
✅ 部署成功

前端部署流程

推送代码到 main 分支
    ↓
Drone CI 检测到代码变更
    ↓
1. 安装 npm 依赖(使用国内镜像加速)
    ↓
2. 构建生产版本npm run build
    ↓
3. 构建 Docker 镜像Nginx + 静态文件)
    ↓
4. SSH 到部署服务器
    ↓
5. 拉取最新镜像并重启容器
    ↓
6. 健康检查 (http://154.30.6.21/)
    ↓
✅ 部署成功

🌐 访问地址

部署后的应用

CI/CD 管理


🛠️ 常用运维命令

Drone 相关

# 查看 Drone Server 日志
ssh root@154.30.6.21 "docker logs -f drone"

# 查看 Runner 日志
ssh root@154.30.6.21 "docker logs -f drone-runner"

# 重启 Drone 服务
ssh root@154.30.6.21 "docker restart drone drone-runner"

应用相关

# 查看所有容器状态
ssh root@154.30.6.21 "docker ps"

# 查看应用日志
ssh root@154.30.6.21 "docker logs -f martial-backend"
ssh root@154.30.6.21 "docker logs -f martial-frontend"

# 重启应用
ssh root@154.30.6.21 "cd /app/martial && docker compose restart backend"
ssh root@154.30.6.21 "cd /app/martial && docker compose restart frontend"

# 查看数据库
ssh root@154.30.6.21 "docker exec -it martial-mysql mysql -uroot -pWtcSecure901faf1ac4d32e2bPwd martial_db"

Docker Compose 管理

# 查看服务状态
ssh root@154.30.6.21 "cd /app/martial && docker compose ps"

# 查看日志
ssh root@154.30.6.21 "cd /app/martial && docker compose logs -f backend"

# 停止所有服务
ssh root@154.30.6.21 "cd /app/martial && docker compose down"

# 启动所有服务
ssh root@154.30.6.21 "cd /app/martial && docker compose up -d"

📝 配置详情

数据库连接

  • Host: 154.30.6.21 (容器内使用 martial-mysql)
  • Port: 3306
  • Database: martial_db
  • Username: root
  • Password: WtcSecure901faf1ac4d32e2bPwd

Redis 配置

  • Host: 154.30.6.21 (容器内使用 martial-redis)
  • Port: 6379
  • Password: RedisSecure2024MartialXyZ789ABC
  • Database: 8

环境变量

后端容器环境变量在 docker-compose.yml 中配置:

SPRING_PROFILE: dev
JAVA_OPTS: "-Xms512m -Xmx1024m"

🔧 故障排查

构建失败

  1. 检查 Drone UI 中的构建日志
  2. 确认 SSH Secret 配置正确
  3. 确认部署服务器可以被 SSH 访问

部署失败

  1. SSH 到部署服务器检查容器状态:docker ps -a
  2. 查看容器日志:docker logs martial-backend
  3. 检查数据库连接:docker exec martial-mysql mysql -uroot -p...

应用无法访问

  1. 检查容器是否运行:docker ps | grep martial
  2. 检查端口是否监听:ss -tlnp | grep 8123
  3. 查看应用日志:docker logs martial-backend

📚 文档位置

  • 后端文档: /remote_dev/martial/martial-master/CLAUDE.md
  • CI/CD 配置: /remote_dev/martial/martial-master/.drone.yml
  • 部署配置: /app/martial/docker-compose.yml (部署服务器上)
  • 数据库脚本: /remote_dev/martial/martial-master/doc/sql/martial-db/

🎯 下一步建议

  1. 完成代码推送见上方步骤1

  2. 激活 Drone 仓库见上方步骤2

  3. 配置域名(可选)

    • 前端: martial.waypeak.work → 154.30.6.21:80
    • 后端: api.martial.waypeak.work → 154.30.6.21:8123
    • CI/CD: drone.waypeak.work → 154.30.6.21:8080
  4. 配置 HTTPS(可选)

    • 使用 Let's Encrypt 免费证书
    • 在 Nginx 中配置 SSL
  5. 配置构建通知(可选)

    • 邮件通知
    • 钉钉/企业微信通知
    • Telegram 通知

生成时间2025-11-29 部署服务器154.30.6.21 管理员JohnSion