From 667c11b4742b53bd20005baf4eae6138e6d61693 Mon Sep 17 00:00:00 2001 From: "n72595987@gmail.com" Date: Sat, 29 Nov 2025 18:05:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=90=8E=E7=AB=AF=20CI/CD?= =?UTF-8?q?=EF=BC=9A=E6=94=B9=E4=B8=BA=E5=9C=A8=E9=83=A8=E7=BD=B2=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E4=B8=8A=E6=9E=84=E5=BB=BA=E9=95=9C=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题: - 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 --- .drone.yml | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/.drone.yml b/.drone.yml index 195c58a..5cf4142 100644 --- a/.drone.yml +++ b/.drone.yml @@ -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 "✅ 后端部署完成"