refactor: 改造 CI/CD 使用阿里云 ACR 镜像仓库
Some checks failed
continuous-integration/drone/push Build is failing

- 使用 plugins/docker 替代 docker:dind 构建镜像
- 镜像推送到阿里云 ACR 私有仓库
- 移除本地部署步骤(由 Watchtower 自动更新)
- 镜像标签: latest, 分支名, commit SHA

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
111
2026-02-03 16:59:11 +08:00
parent b675a51fd2
commit a09d6ae970

View File

@@ -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}