将 IP:端口形式的地址替换为域名: - http://154.30.6.21:8123 → https://martial-api.johnsion.club - http://154.30.6.21:8080 → https://martial-ci.johnsion.club - http://154.30.6.21 → https://martial.johnsion.club - http://localhost:8123/doc.html → https://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>
7.2 KiB
7.2 KiB
武术管理系统 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(推荐)
- 复制以下公钥:
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
- 登录 https://git.waypeak.work
- 进入 设置 → SSH / GPG 密钥
- 添加上面的公钥
方法B:在本地推送代码
在你本地机器上:
# 后端
cd martial-master
git pull
git push origin main
# 前端
cd martial-web
git pull
git push origin main
步骤2:在 Drone UI 中激活仓库 ⚠️ 需要你操作
- 访问 https://martial-ci.johnsion.club
- 使用 Gitea 账号登录(JohnSion)
- 授权 Drone 访问你的仓库
- 在仓库列表中点击 ACTIVATE:
martial/martial-mastermartial/martial-web
步骤3:触发首次构建(推送代码后自动触发)
代码推送后,Drone 会自动:
- 拉取代码
- 编译项目
- 构建 Docker 镜像
- 部署到生产服务器
- 执行健康检查
或者手动触发:
- 进入 Drone UI 中的仓库页面
- 点击右上角 "NEW BUILD"
- 选择
main分支 - 点击 "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)
↓
✅ 部署成功
🌐 访问地址
部署后的应用
- 前端: https://martial.johnsion.club
- 后端 API: https://martial-api.johnsion.club
- API 文档: https://martial-doc.johnsion.club
CI/CD 管理
- Drone UI: https://martial-ci.johnsion.club
🛠️ 常用运维命令
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"
🔧 故障排查
构建失败
- 检查 Drone UI 中的构建日志
- 确认 SSH Secret 配置正确
- 确认部署服务器可以被 SSH 访问
部署失败
- SSH 到部署服务器检查容器状态:
docker ps -a - 查看容器日志:
docker logs martial-backend - 检查数据库连接:
docker exec martial-mysql mysql -uroot -p...
应用无法访问
- 检查容器是否运行:
docker ps | grep martial - 检查端口是否监听:
ss -tlnp | grep 8123 - 查看应用日志:
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)
-
✅ 激活 Drone 仓库(见上方步骤2)
-
✅ 配置域名(已完成)
-
⭐ 配置构建通知(可选)
- 邮件通知
- 钉钉/企业微信通知
- Telegram 通知
生成时间:2025-11-29 部署服务器:154.30.6.21 域名:*.johnsion.club 管理员:JohnSion