修复后端 CI/CD:改为在部署服务器上构建镜像
Some checks failed
continuous-integration/drone/push Build is failing

问题:
- plugins/docker 尝试推送镜像到远程 registry
- 需要配置认证且增加网络传输时间

解决方案:
- 移除 plugins/docker 步骤
- 添加 drone-scp 步骤传输构建产物(blade-api.jar、Dockerfile)
- 在部署服务器上执行 docker build
- 直接使用本地镜像启动容器

优势:
- 不需要配置 Docker registry 认证
- 不需要推送和拉取大型镜像,部署更快
- JAR 文件小(约 50-100MB),传输速度快
- 镜像只存在于部署服务器本地,更安全

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
n72595987@gmail.com
2025-11-29 18:05:07 +08:00
parent 44f01e2219
commit 667c11b474

View File

@@ -32,33 +32,34 @@ steps:
- ls -lh target/blade-api.jar
- echo "✅ 后端项目编译完成"
# 步骤3构建 Docker 镜像
- name: 构建Docker镜像
image: plugins/docker
# 步骤3传输构建产物
- name: 传输构建产物
image: appleboy/drone-scp
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
host: 154.30.6.21
username: root
key:
from_secret: ssh_key
port: 22
target: /app/martial/backend-build
source:
- target/blade-api.jar
- Dockerfile
strip_components: 0
# 步骤4部署到服务器
# 步骤4在服务器上构建镜像并部署
- name: 部署到生产环境
image: appleboy/drone-ssh
settings:
host: 154.30.6.21 # 部署服务器地址
host: 154.30.6.21
username: root
key:
from_secret: ssh_key # 需要在 Drone 中配置 SSH 私钥
from_secret: ssh_key
port: 22
script:
- cd /app/martial/backend-build
- docker build -t martial/backend:latest .
- cd /app/martial
- docker-compose pull backend
- docker-compose up -d backend
- docker ps | grep martial-backend
- echo "✅ 后端部署完成"