修复后端 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 - ls -lh target/blade-api.jar
- echo "✅ 后端项目编译完成" - echo "✅ 后端项目编译完成"
# 步骤3构建 Docker 镜像 # 步骤3传输构建产物
- name: 构建Docker镜像 - name: 传输构建产物
image: plugins/docker image: appleboy/drone-scp
settings: settings:
registry: registry.cn-hangzhou.aliyuncs.com # 可选:使用阿里云镜像仓库 host: 154.30.6.21
repo: martial/backend username: root
tags: key:
- latest from_secret: ssh_key
- ${DRONE_COMMIT_SHA:0:8} port: 22
dockerfile: Dockerfile target: /app/martial/backend-build
# username: # 如果需要推送到私有仓库 source:
# from_secret: docker_username - target/blade-api.jar
# password: - Dockerfile
# from_secret: docker_password strip_components: 0
# 步骤4部署到服务器 # 步骤4在服务器上构建镜像并部署
- name: 部署到生产环境 - name: 部署到生产环境
image: appleboy/drone-ssh image: appleboy/drone-ssh
settings: settings:
host: 154.30.6.21 # 部署服务器地址 host: 154.30.6.21
username: root username: root
key: key:
from_secret: ssh_key # 需要在 Drone 中配置 SSH 私钥 from_secret: ssh_key
port: 22 port: 22
script: script:
- cd /app/martial/backend-build
- docker build -t martial/backend:latest .
- cd /app/martial - cd /app/martial
- docker-compose pull backend
- docker-compose up -d backend - docker-compose up -d backend
- docker ps | grep martial-backend - docker ps | grep martial-backend
- echo "✅ 后端部署完成" - echo "✅ 后端部署完成"