appointment_system/server/Makefile
2025-12-20 18:04:10 +08:00

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