From a09d6ae970c8f3f659d743f334f60f39d4c70d1f Mon Sep 17 00:00:00 2001 From: 111 Date: Tue, 3 Feb 2026 16:59:11 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=94=B9=E9=80=A0=20CI/CD=20?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E9=98=BF=E9=87=8C=E4=BA=91=20ACR=20=E9=95=9C?= =?UTF-8?q?=E5=83=8F=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用 plugins/docker 替代 docker:dind 构建镜像 - 镜像推送到阿里云 ACR 私有仓库 - 移除本地部署步骤(由 Watchtower 自动更新) - 镜像标签: latest, 分支名, commit SHA Co-authored-by: Cursor --- .drone.yml | 113 ++++++++++++++++------------------------------------- 1 file changed, 33 insertions(+), 80 deletions(-) diff --git a/.drone.yml b/.drone.yml index 34b6ee6..b74e0c4 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,6 +1,6 @@ kind: pipeline type: docker -name: build-and-deploy +name: build-and-push trigger: branch: @@ -10,83 +10,36 @@ trigger: - push steps: - # 构建后端镜像 - - name: build-backend - image: docker:dind - volumes: - - name: docker-sock - path: /var/run/docker.sock - commands: - - docker build -t ai-interview-backend:${DRONE_COMMIT_SHA:0:8} -f deploy/Dockerfile.backend . - - docker tag ai-interview-backend:${DRONE_COMMIT_SHA:0:8} ai-interview-backend:latest + # 构建并推送后端镜像 + - name: build-push-backend + image: plugins/docker + settings: + registry: + from_secret: docker_registry + username: + from_secret: docker_username + password: + from_secret: docker_password + repo: crpi-na6dit5kd0bonqed.cn-guangzhou.personal.cr.aliyuncs.com/ireborn/ai-interview-backend + dockerfile: deploy/Dockerfile.backend + tags: + - latest + - ${DRONE_BRANCH} + - ${DRONE_COMMIT_SHA:0:8} - # 构建前端镜像 - - name: build-frontend - image: docker:dind - volumes: - - name: docker-sock - path: /var/run/docker.sock - commands: - - docker build -t ai-interview-frontend:${DRONE_COMMIT_SHA:0:8} -f deploy/Dockerfile.frontend . - - docker tag ai-interview-frontend:${DRONE_COMMIT_SHA:0:8} ai-interview-frontend:latest - - # 部署到测试环境 (develop 分支) - - name: deploy-test - image: docker:dind - volumes: - - name: docker-sock - path: /var/run/docker.sock - environment: - COZE_PAT_TOKEN: - from_secret: coze_pat_token - COZE_BOT_ID: - from_secret: coze_bot_id - COZE_WORKFLOW_A_ID: - from_secret: coze_workflow_a_id - COZE_WORKFLOW_C_ID: - from_secret: coze_workflow_c_id - FILE_SERVER_URL: - from_secret: file_server_url - FILE_SERVER_TOKEN: - from_secret: file_server_token - commands: - - docker stop ai-interview-backend-test ai-interview-frontend-test || true - - docker rm ai-interview-backend-test ai-interview-frontend-test || true - - docker run -d --name ai-interview-backend-test -p 8000:8000 --restart unless-stopped -e COZE_PAT_TOKEN=$COZE_PAT_TOKEN -e COZE_BOT_ID=$COZE_BOT_ID -e COZE_WORKFLOW_A_ID=$COZE_WORKFLOW_A_ID -e COZE_WORKFLOW_C_ID=$COZE_WORKFLOW_C_ID -e FILE_SERVER_URL=$FILE_SERVER_URL -e FILE_SERVER_TOKEN=$FILE_SERVER_TOKEN ai-interview-backend:latest - - docker run -d --name ai-interview-frontend-test -p 3000:80 --restart unless-stopped ai-interview-frontend:latest - when: - branch: - - develop - - # 部署到正式环境 (main 分支) - - name: deploy-prod - image: docker:dind - volumes: - - name: docker-sock - path: /var/run/docker.sock - environment: - COZE_PAT_TOKEN: - from_secret: coze_pat_token - COZE_BOT_ID: - from_secret: coze_bot_id - COZE_WORKFLOW_A_ID: - from_secret: coze_workflow_a_id - COZE_WORKFLOW_C_ID: - from_secret: coze_workflow_c_id - FILE_SERVER_URL: - from_secret: file_server_url - FILE_SERVER_TOKEN: - from_secret: file_server_token - commands: - - docker stop ai-interview-backend-prod ai-interview-frontend-prod || true - - docker rm ai-interview-backend-prod ai-interview-frontend-prod || true - - docker run -d --name ai-interview-backend-prod -p 9000:8000 --restart unless-stopped -e COZE_PAT_TOKEN=$COZE_PAT_TOKEN -e COZE_BOT_ID=$COZE_BOT_ID -e COZE_WORKFLOW_A_ID=$COZE_WORKFLOW_A_ID -e COZE_WORKFLOW_C_ID=$COZE_WORKFLOW_C_ID -e FILE_SERVER_URL=$FILE_SERVER_URL -e FILE_SERVER_TOKEN=$FILE_SERVER_TOKEN ai-interview-backend:latest - - docker run -d --name ai-interview-frontend-prod -p 4000:80 --restart unless-stopped ai-interview-frontend:latest - when: - branch: - - main - -volumes: - - name: docker-sock - host: - path: /var/run/docker.sock + # 构建并推送前端镜像 + - name: build-push-frontend + image: plugins/docker + settings: + registry: + from_secret: docker_registry + username: + from_secret: docker_username + password: + from_secret: docker_password + repo: crpi-na6dit5kd0bonqed.cn-guangzhou.personal.cr.aliyuncs.com/ireborn/ai-interview-frontend + dockerfile: deploy/Dockerfile.frontend + tags: + - latest + - ${DRONE_BRANCH} + - ${DRONE_COMMIT_SHA:0:8}