添加 Drone CI/CD 自动化部署配置
Some checks failed
continuous-integration/drone/push Build encountered an error
Some checks failed
continuous-integration/drone/push Build encountered an error
1. 新增 .drone.yml 配置文件 - 自动编译 BladeX 框架依赖 - 自动编译后端项目并打包 - 构建 Docker 镜像 - 自动部署到生产服务器 - 健康检查验证部署成功 2. 新增 Dockerfile - 基于 eclipse-temurin:17-jre 轻量镜像 - 配置 JVM 参数优化内存使用 - 添加健康检查端点 - 支持多环境配置(dev/test/prod) 现在推送代码到 main 分支后,Drone CI 会自动: - 编译项目 - 构建 Docker 镜像 - 部署到 154.30.6.21 服务器 - 执行健康检查 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
113
.drone.yml
Normal file
113
.drone.yml
Normal file
@@ -0,0 +1,113 @@
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: 武术系统后端自动部署
|
||||
|
||||
# 只在 main 分支触发
|
||||
trigger:
|
||||
branch:
|
||||
- main
|
||||
event:
|
||||
- push
|
||||
|
||||
steps:
|
||||
# 步骤1:编译 BladeX 框架
|
||||
- name: 编译框架依赖
|
||||
image: maven:3.9-eclipse-temurin-17
|
||||
volumes:
|
||||
- name: maven-cache
|
||||
path: /root/.m2
|
||||
commands:
|
||||
- echo "开始编译 BladeX 框架..."
|
||||
- cd /drone/src/../martial-tool
|
||||
- mvn clean install -DskipTests -q
|
||||
- echo "✅ BladeX 框架编译完成"
|
||||
|
||||
# 步骤2:编译后端项目
|
||||
- name: 编译后端项目
|
||||
image: maven:3.9-eclipse-temurin-17
|
||||
volumes:
|
||||
- name: maven-cache
|
||||
path: /root/.m2
|
||||
commands:
|
||||
- echo "开始编译后端项目..."
|
||||
- mvn clean package -DskipTests -Dmaven.test.skip=true
|
||||
- ls -lh target/blade-api.jar
|
||||
- echo "✅ 后端项目编译完成"
|
||||
|
||||
# 步骤3:构建 Docker 镜像
|
||||
- name: 构建Docker镜像
|
||||
image: plugins/docker
|
||||
settings:
|
||||
registry: registry.cn-hangzhou.aliyuncs.com # 可选:使用阿里云镜像仓库
|
||||
repo: martial/backend
|
||||
tags:
|
||||
- latest
|
||||
- ${DRONE_COMMIT_SHA:0:8}
|
||||
dockerfile: Dockerfile
|
||||
# username: # 如果需要推送到私有仓库
|
||||
# from_secret: docker_username
|
||||
# password:
|
||||
# from_secret: docker_password
|
||||
|
||||
# 步骤4:部署到服务器
|
||||
- name: 部署到生产环境
|
||||
image: appleboy/drone-ssh
|
||||
settings:
|
||||
host: 154.30.6.21 # 部署服务器地址
|
||||
username: root
|
||||
key:
|
||||
from_secret: ssh_key # 需要在 Drone 中配置 SSH 私钥
|
||||
port: 22
|
||||
script:
|
||||
- cd /app/martial
|
||||
- docker-compose pull backend
|
||||
- docker-compose up -d backend
|
||||
- docker ps | grep martial-backend
|
||||
- echo "✅ 后端部署完成"
|
||||
|
||||
# 步骤5:健康检查
|
||||
- name: 健康检查
|
||||
image: curlimages/curl:latest
|
||||
commands:
|
||||
- sleep 15 # 等待服务启动
|
||||
- curl -f http://154.30.6.21:8123/actuator/health || exit 1
|
||||
- echo "✅ 健康检查通过"
|
||||
|
||||
# 挂载卷(缓存 Maven 依赖,加速构建)
|
||||
volumes:
|
||||
- name: maven-cache
|
||||
host:
|
||||
path: /data/drone-cache/maven
|
||||
|
||||
# 构建通知(可选)
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: 构建通知
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- main
|
||||
status:
|
||||
- success
|
||||
- failure
|
||||
|
||||
steps:
|
||||
- name: 发送通知
|
||||
image: drillster/drone-email
|
||||
settings:
|
||||
host: smtp.qq.com # 邮件服务器
|
||||
port: 465
|
||||
from: your-email@qq.com
|
||||
recipients:
|
||||
- your-email@qq.com
|
||||
username:
|
||||
from_secret: email_username
|
||||
password:
|
||||
from_secret: email_password
|
||||
when:
|
||||
status:
|
||||
- failure # 只在失败时发送邮件
|
||||
|
||||
depends_on:
|
||||
- 武术系统后端自动部署
|
||||
Reference in New Issue
Block a user