Files
martial-master/docs/CI-CD部署总结.md
n72595987@gmail.com ef1d4d1942 docs: 更新文档中的访问地址为域名
将 IP:端口形式的地址替换为域名:
- http://154.30.6.21:8123https://martial-api.johnsion.club
- http://154.30.6.21:8080https://martial-ci.johnsion.club
- http://154.30.6.21https://martial.johnsion.club
- http://localhost:8123/doc.htmlhttps://martial-doc.johnsion.club

更新的文件:
- docs/README.md: 新人入门路径增加域名说明
- docs/CI-CD部署总结.md: 所有访问地址替换为域名,标记域名配置已完成

本地开发相关的 localhost 配置保持不变。

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 12:59:02 +08:00

7.2 KiB
Raw Blame History

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

🎉 部署状态

已完成的工作

1. Drone CI/CD 服务器部署

  • Drone Server: https://martial-ci.johnsion.club 运行中
  • 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. 访问 https://martial-ci.johnsion.club
  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. 健康检查 (https://martial-api.johnsion.club/actuator/health)
    ↓
✅ 部署成功

前端部署流程

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

🌐 访问地址

部署后的应用

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. 配置域名(已完成)

  4. 配置构建通知(可选)

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

生成时间2025-11-29 部署服务器154.30.6.21 域名:*.johnsion.club 管理员JohnSion