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:
@@ -1,43 +1,100 @@
|
||||
.PHONY: help install build up down restart logs ps deploy clean
|
||||
.PHONY: help install \
|
||||
prod-build prod-up prod-down prod-restart prod-logs prod-logs-server prod-ps prod-deploy \
|
||||
test-build test-up test-down test-restart test-logs test-logs-server test-ps test-deploy \
|
||||
gateway-up gateway-down gateway-reload \
|
||||
init deploy clean
|
||||
|
||||
DOCKER_COMPOSE = docker-compose -f deploy/docker/docker-compose.yml
|
||||
DOCKER_PROD = docker-compose -f deploy/docker/docker-compose.prod.yml
|
||||
DOCKER_TEST = docker-compose -f deploy/docker/docker-compose.test.yml
|
||||
DOCKER_GATEWAY = docker-compose -f deploy/docker/docker-compose.gateway.yml
|
||||
|
||||
help: ## 显示帮助信息
|
||||
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | \
|
||||
awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
||||
awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-25s\033[0m %s\n", $$1, $$2}'
|
||||
|
||||
install: ## 安装依赖
|
||||
npm install -g pnpm
|
||||
pnpm install
|
||||
|
||||
build: ## 构建所有 Docker 镜像
|
||||
$(DOCKER_COMPOSE) build --parallel
|
||||
# ===== 生产环境 =====
|
||||
prod-build: ## 构建生产环境镜像
|
||||
$(DOCKER_PROD) build --parallel
|
||||
|
||||
up: ## 启动所有服务
|
||||
$(DOCKER_COMPOSE) up -d
|
||||
prod-up: ## 启动生产环境
|
||||
$(DOCKER_PROD) up -d
|
||||
|
||||
down: ## 停止所有服务
|
||||
$(DOCKER_COMPOSE) down
|
||||
prod-down: ## 停止生产环境
|
||||
$(DOCKER_PROD) down
|
||||
|
||||
restart: ## 重启所有服务
|
||||
$(DOCKER_COMPOSE) restart
|
||||
prod-restart: ## 重启生产环境
|
||||
$(DOCKER_PROD) restart
|
||||
|
||||
logs: ## 查看所有服务日志
|
||||
$(DOCKER_COMPOSE) logs -f --tail=100
|
||||
prod-logs: ## 查看生产环境日志
|
||||
$(DOCKER_PROD) logs -f --tail=100
|
||||
|
||||
logs-server: ## 查看后端服务日志
|
||||
$(DOCKER_COMPOSE) logs -f --tail=100 server
|
||||
prod-logs-server: ## 查看生产环境后端日志
|
||||
$(DOCKER_PROD) logs -f --tail=100 server
|
||||
|
||||
ps: ## 查看运行中的容器
|
||||
$(DOCKER_COMPOSE) ps
|
||||
prod-ps: ## 查看生产环境容器
|
||||
$(DOCKER_PROD) ps
|
||||
|
||||
deploy: down build up ## 完整部署(停止 → 构建 → 启动)
|
||||
prod-deploy: prod-down prod-build prod-up ## 完整部署生产环境
|
||||
@echo ""
|
||||
@echo "部署完成!"
|
||||
@echo " 商家后台: http://localhost:8081"
|
||||
@echo " 平台后台: http://localhost:8082"
|
||||
@echo " API 服务: http://localhost:3000"
|
||||
@echo "生产环境部署完成!"
|
||||
@echo " API: http://api.pinzhuhui.com"
|
||||
@echo " 官网: http://www.pinzhuhui.com"
|
||||
@echo " 商家后台: http://merchant.pinzhuhui.com"
|
||||
@echo " 平台后台: http://platform-admin.pinzhuhui.com"
|
||||
|
||||
# ===== 测试环境 =====
|
||||
test-build: ## 构建测试环境镜像
|
||||
$(DOCKER_TEST) build --parallel
|
||||
|
||||
test-up: ## 启动测试环境
|
||||
$(DOCKER_TEST) up -d
|
||||
|
||||
test-down: ## 停止测试环境
|
||||
$(DOCKER_TEST) down
|
||||
|
||||
test-restart: ## 重启测试环境
|
||||
$(DOCKER_TEST) restart
|
||||
|
||||
test-logs: ## 查看测试环境日志
|
||||
$(DOCKER_TEST) logs -f --tail=100
|
||||
|
||||
test-logs-server: ## 查看测试环境后端日志
|
||||
$(DOCKER_TEST) logs -f --tail=100 server
|
||||
|
||||
test-ps: ## 查看测试环境容器
|
||||
$(DOCKER_TEST) ps
|
||||
|
||||
test-deploy: test-down test-build test-up ## 完整部署测试环境
|
||||
@echo ""
|
||||
@echo "测试环境部署完成!"
|
||||
@echo " API: http://api-test.pinzhuhui.com"
|
||||
@echo " 官网: http://test.pinzhuhui.com"
|
||||
@echo " 商家后台: http://merchant-test.pinzhuhui.com"
|
||||
@echo " 平台后台: http://platform-admin-test.pinzhuhui.com"
|
||||
|
||||
# ===== 网关 =====
|
||||
gateway-up: ## 启动网关
|
||||
$(DOCKER_GATEWAY) up -d
|
||||
|
||||
gateway-down: ## 停止网关
|
||||
$(DOCKER_GATEWAY) down
|
||||
|
||||
gateway-reload: ## 重载网关配置
|
||||
docker exec rent-gateway nginx -s reload
|
||||
|
||||
# ===== 快捷命令 =====
|
||||
init: gateway-up ## 首次初始化(启动网关 + 创建网络)
|
||||
@echo "网络已创建,网关已启动。"
|
||||
@echo "接下来运行 make prod-deploy 或 make test-deploy"
|
||||
|
||||
deploy: prod-deploy ## 别名:部署生产环境
|
||||
|
||||
clean: ## 清理所有容器、数据卷和悬空镜像
|
||||
$(DOCKER_COMPOSE) down -v
|
||||
$(DOCKER_PROD) down -v
|
||||
$(DOCKER_TEST) down -v
|
||||
$(DOCKER_GATEWAY) down
|
||||
docker image prune -f
|
||||
|
||||
Reference in New Issue
Block a user