feat: 双环境自动化部署(生产 + 测试)

- 新增 docker-compose.prod.yml / docker-compose.test.yml 双环境配置
- 新增 docker-compose.gateway.yml Nginx 网关按域名路由
- 新增 Dockerfile.website 官网镜像构建
- 新增 gateway.conf 支持 8 个域名路由
- 更新 .gitlab-ci.yml 支持 prod/test 双分支自动部署
- 更新 Makefile 新增 prod-/test-/gateway- 快捷命令
- 新增 scripts/setup-server.sh 服务器一键初始化脚本
- 修复 Nginx 配置服务名不匹配问题
- 修复前端 Dockerfile 缺少 packages/ 导致构建失败
- 删除旧的 docker-compose.yml

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-01 19:12:32 +08:00
parent 0bbbe20ec7
commit bcf16fe53d
10 changed files with 786 additions and 169 deletions
+47 -7
View File
@@ -6,12 +6,13 @@ stages:
variables:
NODE_ENV: production
# prod 分支触发
# prod 和 test 分支触发
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: never
- if: $CI_COMMIT_BRANCH == "prod"
- if: $CI_COMMIT_BRANCH == "test"
# pnpm store 缓存
cache:
@@ -86,6 +87,20 @@ build_platform:
- apps/platform-admin/dist/
expire_in: 1 hour
build_website:
stage: build
tags:
- rent-deploy
needs: [install_dependencies]
script:
- npm install -g pnpm
- pnpm config set store-dir .pnpm-store
- pnpm --filter @rent/official-website build
artifacts:
paths:
- apps/official-website/out/
expire_in: 1 hour
# ==================== DEPLOY ====================
deploy_production:
stage: deploy
@@ -95,17 +110,42 @@ deploy_production:
- build_server
- build_merchant
- build_platform
- build_website
script:
- echo "部署到生产环境..."
- cd deploy/docker
- docker-compose down --remove-orphans
- docker-compose build --parallel
- docker-compose up -d
- docker-compose -f docker-compose.prod.yml down --remove-orphans
- docker-compose -f docker-compose.prod.yml build --parallel
- docker-compose -f docker-compose.prod.yml up -d
- docker image prune -f
- echo "等待服务启动..."
- sleep 10
- docker-compose ps
- docker-compose -f docker-compose.prod.yml ps
environment:
name: production
only:
- prod
rules:
- if: $CI_COMMIT_BRANCH == "prod"
deploy_test:
stage: deploy
tags:
- rent-deploy
needs:
- build_server
- build_merchant
- build_platform
- build_website
script:
- echo "部署到测试环境..."
- cd deploy/docker
- docker-compose -f docker-compose.test.yml down --remove-orphans
- docker-compose -f docker-compose.test.yml build --parallel
- docker-compose -f docker-compose.test.yml up -d
- docker image prune -f
- echo "等待服务启动..."
- sleep 10
- docker-compose -f docker-compose.test.yml ps
environment:
name: test
rules:
- if: $CI_COMMIT_BRANCH == "test"