refactor: 改造 CI/CD 使用阿里云 ACR 镜像仓库
Some checks failed
continuous-integration/drone/push Build is failing
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:
113
.drone.yml
113
.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}
|
||||
|
||||
Reference in New Issue
Block a user