feat: 添加生产环境批量部署流程
Some checks failed
continuous-integration/drone/push Build encountered an error

- test 分支:部署到测试环境 (kaopeilian.test.ai.ireborn.com.cn)
- main 分支:批量更新所有生产租户 (hua/yy/hl/xy/fw/ex)
- 前端一次编译,6个租户共享
- 后端批量重建容器
This commit is contained in:
111
2026-01-27 10:08:43 +08:00
parent 442ac78b56
commit c38e6fabb6

View File

@@ -1,7 +1,8 @@
kind: pipeline kind: pipeline
type: docker type: docker
name: build-and-deploy name: deploy-test
# 测试环境test 分支触发
trigger: trigger:
branch: branch:
- test - test
@@ -9,7 +10,6 @@ trigger:
- push - push
steps: steps:
# 构建后端镜像
- name: build-backend - name: build-backend
image: docker:dind image: docker:dind
volumes: volumes:
@@ -20,7 +20,6 @@ steps:
- docker build -t kaopeilian-backend:${DRONE_COMMIT_SHA:0:8} -f Dockerfile . - docker build -t kaopeilian-backend:${DRONE_COMMIT_SHA:0:8} -f Dockerfile .
- docker tag kaopeilian-backend:${DRONE_COMMIT_SHA:0:8} kaopeilian-backend:test - docker tag kaopeilian-backend:${DRONE_COMMIT_SHA:0:8} kaopeilian-backend:test
# 构建前端镜像
- name: build-frontend - name: build-frontend
image: docker:dind image: docker:dind
volumes: volumes:
@@ -31,7 +30,6 @@ steps:
- docker build -t kaopeilian-frontend:${DRONE_COMMIT_SHA:0:8} -f Dockerfile --build-arg VITE_API_BASE_URL=http://kaopeilian.test.ai.ireborn.com.cn . - docker build -t kaopeilian-frontend:${DRONE_COMMIT_SHA:0:8} -f Dockerfile --build-arg VITE_API_BASE_URL=http://kaopeilian.test.ai.ireborn.com.cn .
- docker tag kaopeilian-frontend:${DRONE_COMMIT_SHA:0:8} kaopeilian-frontend:test - docker tag kaopeilian-frontend:${DRONE_COMMIT_SHA:0:8} kaopeilian-frontend:test
# 部署测试环境
- name: deploy-test - name: deploy-test
image: docker:dind image: docker:dind
volumes: volumes:
@@ -69,7 +67,75 @@ steps:
--restart unless-stopped \ --restart unless-stopped \
kaopeilian-frontend:test kaopeilian-frontend:test
- docker ps | grep kaopeilian - docker ps | grep kaopeilian
- echo "=== 考培练系统测试环境部署完成 ===" - echo "=== 测试环境部署完成: http://kaopeilian.test.ai.ireborn.com.cn ==="
volumes:
- name: docker-sock
host:
path: /var/run/docker.sock
---
kind: pipeline
type: docker
name: deploy-prod
# 生产环境main 分支触发,批量更新所有租户
trigger:
branch:
- main
event:
- push
steps:
- name: sync-code-to-server
image: appleboy/drone-ssh
settings:
host: 120.79.247.16
username: root
password:
from_secret: prod_ssh_password
port: 22
command_timeout: 10m
script:
- echo "=== 同步代码到生产服务器 ==="
- cd /root/aiedu
- git fetch origin
- git reset --hard origin/main
- echo "代码同步完成"
- name: build-frontend
image: appleboy/drone-ssh
settings:
host: 120.79.247.16
username: root
password:
from_secret: prod_ssh_password
port: 22
command_timeout: 10m
script:
- echo "=== 编译前端(所有租户共享)==="
- cd /root/aiedu/kaopeilian-frontend
- npm install --silent
- npm run build
- echo "前端编译完成,所有租户已更新"
- name: rebuild-backends
image: appleboy/drone-ssh
settings:
host: 120.79.247.16
username: root
password:
from_secret: prod_ssh_password
port: 22
command_timeout: 15m
script:
- echo "=== 重建所有后端服务 ==="
- cd /root/aiedu
- docker-compose -f docker-compose.prod-multi.yml up -d --build --no-deps hua-backend yy-backend hl-backend xy-backend fw-backend ex-backend
- sleep 10
- docker ps | grep backend
- echo "=== 生产环境批量更新完成 ==="
- echo "租户列表: hua, yy, hl, xy, fw, ex"
volumes: volumes:
- name: docker-sock - name: docker-sock