113 lines
2.8 KiB
Makefile
113 lines
2.8 KiB
Makefile
# ============================================
|
|
# 海外预约系统 - Makefile
|
|
# ============================================
|
|
|
|
.PHONY: help deploy build start stop restart logs status clean
|
|
|
|
# 默认目标
|
|
.DEFAULT_GOAL := help
|
|
|
|
# 颜色定义
|
|
GREEN := \033[0;32m
|
|
YELLOW := \033[1;33m
|
|
BLUE := \033[0;34m
|
|
NC := \033[0m
|
|
|
|
# 检测 docker compose 命令
|
|
DOCKER_COMPOSE := $(shell if docker compose version > /dev/null 2>&1; then echo "docker compose"; else echo "docker-compose"; fi)
|
|
|
|
# 帮助信息
|
|
help:
|
|
@echo ""
|
|
@echo "$(BLUE)============================================$(NC)"
|
|
@echo "$(BLUE) 海外预约系统 - 部署命令$(NC)"
|
|
@echo "$(BLUE)============================================$(NC)"
|
|
@echo ""
|
|
@echo "$(GREEN)部署命令:$(NC)"
|
|
@echo " make deploy - 完整部署(构建 Admin + 启动服务)"
|
|
@echo " make build - 仅构建 Admin 前端"
|
|
@echo " make start - 启动服务(跳过构建)"
|
|
@echo ""
|
|
@echo "$(GREEN)管理命令:$(NC)"
|
|
@echo " make stop - 停止服务"
|
|
@echo " make restart - 重启服务"
|
|
@echo " make status - 查看服务状态"
|
|
@echo " make logs - 查看实时日志"
|
|
@echo " make logs-api - 查看 API 日志"
|
|
@echo " make logs-nginx - 查看 Nginx 日志"
|
|
@echo ""
|
|
@echo "$(GREEN)其他命令:$(NC)"
|
|
@echo " make clean - 清理构建产物"
|
|
@echo " make shell-api - 进入 API 容器"
|
|
@echo " make shell-nginx - 进入 Nginx 容器"
|
|
@echo " make init - 初始化环境配置"
|
|
@echo ""
|
|
|
|
# 完整部署
|
|
deploy:
|
|
@./deploy.sh
|
|
|
|
# 仅构建 Admin
|
|
build:
|
|
@echo "$(YELLOW)构建 Admin 前端...$(NC)"
|
|
@cd ../admin && npm install && npm run build
|
|
@rm -rf ./admin-dist
|
|
@cp -r ../admin/dist ./admin-dist
|
|
@echo "$(GREEN)✓ Admin 构建完成$(NC)"
|
|
|
|
# 启动服务(跳过构建)
|
|
start:
|
|
@./deploy.sh --skip-build
|
|
|
|
# 停止服务
|
|
stop:
|
|
@./deploy.sh --stop
|
|
|
|
# 重启服务
|
|
restart:
|
|
@./deploy.sh --restart
|
|
|
|
# 查看服务状态
|
|
status:
|
|
@$(DOCKER_COMPOSE) ps
|
|
|
|
# 查看所有日志
|
|
logs:
|
|
@$(DOCKER_COMPOSE) logs -f
|
|
|
|
# 查看 API 日志
|
|
logs-api:
|
|
@$(DOCKER_COMPOSE) logs -f api
|
|
|
|
# 查看 Nginx 日志
|
|
logs-nginx:
|
|
@$(DOCKER_COMPOSE) logs -f nginx
|
|
|
|
# 进入 API 容器
|
|
shell-api:
|
|
@docker exec -it overseas-appointment-api sh
|
|
|
|
# 进入 Nginx 容器
|
|
shell-nginx:
|
|
@docker exec -it overseas-appointment-nginx sh
|
|
|
|
# 初始化环境配置
|
|
init:
|
|
@if [ ! -f .env ]; then \
|
|
cp .env.example .env; \
|
|
echo "$(GREEN)✓ 已创建 .env 文件,请编辑配置$(NC)"; \
|
|
else \
|
|
echo "$(YELLOW).env 文件已存在$(NC)"; \
|
|
fi
|
|
|
|
# 清理构建产物
|
|
clean:
|
|
@echo "$(YELLOW)清理构建产物...$(NC)"
|
|
@rm -rf ./admin-dist
|
|
@$(DOCKER_COMPOSE) down --rmi local 2>/dev/null || true
|
|
@echo "$(GREEN)✓ 清理完成$(NC)"
|
|
|
|
# 查看健康状态
|
|
health:
|
|
@curl -s http://localhost:2701/health | python3 -m json.tool 2>/dev/null || curl -s http://localhost:2701/health
|