Compare commits

..

4 Commits

Author SHA1 Message Date
111
a53cb0e5e7 Revert "test: 升级版本号到 0.1.1 测试自动更新"
All checks were successful
continuous-integration/drone/push Build is passing
This reverts commit 4911ea8a2c.
2026-02-03 17:09:52 +08:00
111
4911ea8a2c test: 升级版本号到 0.1.1 测试自动更新
All checks were successful
continuous-integration/drone/push Build is passing
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 17:08:49 +08:00
111
6308b4a235 fix: 使用 docker:dind 方式构建并推送到 ACR
All checks were successful
continuous-integration/drone/push Build is passing
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 17:01:34 +08:00
111
a09d6ae970 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>
2026-02-03 16:59:11 +08:00

View File

@@ -1,6 +1,6 @@
kind: pipeline kind: pipeline
type: docker type: docker
name: build-and-deploy name: build-and-push
trigger: trigger:
branch: branch:
@@ -10,81 +10,55 @@ trigger:
- push - push
steps: steps:
# 构建后端镜像 # 构建并推送后端镜像
- name: build-backend - name: build-push-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-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 image: docker:dind
volumes: volumes:
- name: docker-sock - name: docker-sock
path: /var/run/docker.sock path: /var/run/docker.sock
environment: environment:
COZE_PAT_TOKEN: DOCKER_REGISTRY:
from_secret: coze_pat_token from_secret: docker_registry
COZE_BOT_ID: DOCKER_USERNAME:
from_secret: coze_bot_id from_secret: docker_username
COZE_WORKFLOW_A_ID: DOCKER_PASSWORD:
from_secret: coze_workflow_a_id from_secret: docker_password
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: commands:
- docker stop ai-interview-backend-test ai-interview-frontend-test || true - echo "登录 ACR..."
- docker rm ai-interview-backend-test ai-interview-frontend-test || true - echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY" -u "$DOCKER_USERNAME" --password-stdin
- 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 - echo "构建后端镜像..."
- docker run -d --name ai-interview-frontend-test -p 3000:80 --restart unless-stopped ai-interview-frontend:latest - docker build -t $DOCKER_REGISTRY/ireborn/ai-interview-backend:${DRONE_BRANCH} -f deploy/Dockerfile.backend .
when: - docker tag $DOCKER_REGISTRY/ireborn/ai-interview-backend:${DRONE_BRANCH} $DOCKER_REGISTRY/ireborn/ai-interview-backend:latest
branch: - docker tag $DOCKER_REGISTRY/ireborn/ai-interview-backend:${DRONE_BRANCH} $DOCKER_REGISTRY/ireborn/ai-interview-backend:${DRONE_COMMIT_SHA:0:8}
- develop - echo "推送后端镜像..."
- docker push $DOCKER_REGISTRY/ireborn/ai-interview-backend:${DRONE_BRANCH}
- docker push $DOCKER_REGISTRY/ireborn/ai-interview-backend:latest
- docker push $DOCKER_REGISTRY/ireborn/ai-interview-backend:${DRONE_COMMIT_SHA:0:8}
# 部署到正式环境 (main 分支) # 构建并推送前端镜像
- name: deploy-prod - name: build-push-frontend
image: docker:dind image: docker:dind
volumes: volumes:
- name: docker-sock - name: docker-sock
path: /var/run/docker.sock path: /var/run/docker.sock
environment: environment:
COZE_PAT_TOKEN: DOCKER_REGISTRY:
from_secret: coze_pat_token from_secret: docker_registry
COZE_BOT_ID: DOCKER_USERNAME:
from_secret: coze_bot_id from_secret: docker_username
COZE_WORKFLOW_A_ID: DOCKER_PASSWORD:
from_secret: coze_workflow_a_id from_secret: docker_password
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: commands:
- docker stop ai-interview-backend-prod ai-interview-frontend-prod || true - echo "登录 ACR..."
- docker rm ai-interview-backend-prod ai-interview-frontend-prod || true - echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY" -u "$DOCKER_USERNAME" --password-stdin
- 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 - echo "构建前端镜像..."
- docker run -d --name ai-interview-frontend-prod -p 4000:80 --restart unless-stopped ai-interview-frontend:latest - docker build -t $DOCKER_REGISTRY/ireborn/ai-interview-frontend:${DRONE_BRANCH} -f deploy/Dockerfile.frontend .
when: - docker tag $DOCKER_REGISTRY/ireborn/ai-interview-frontend:${DRONE_BRANCH} $DOCKER_REGISTRY/ireborn/ai-interview-frontend:latest
branch: - docker tag $DOCKER_REGISTRY/ireborn/ai-interview-frontend:${DRONE_BRANCH} $DOCKER_REGISTRY/ireborn/ai-interview-frontend:${DRONE_COMMIT_SHA:0:8}
- main - echo "推送前端镜像..."
- docker push $DOCKER_REGISTRY/ireborn/ai-interview-frontend:${DRONE_BRANCH}
- docker push $DOCKER_REGISTRY/ireborn/ai-interview-frontend:latest
- docker push $DOCKER_REGISTRY/ireborn/ai-interview-frontend:${DRONE_COMMIT_SHA:0:8}
volumes: volumes:
- name: docker-sock - name: docker-sock