# AIOps 智能运维平台 - Makefile # 使用方式: make help .PHONY: help install dev build build-ui build-api build-binary status stop restart logs lint clean \ docker-up docker-down docker-build docker-logs docker-embed help: @echo "AIOps 智能运维平台 - 可用命令:" @echo "" @echo " 本地开发:" @echo " make install - 安装前后端依赖" @echo " make dev - 启动开发环境(前后端)" @echo " make build - 构建生产环境(前后端)" @echo " make build-ui - 仅构建前端" @echo " make build-api - 仅构建后端" @echo " make status - 查看服务状态" @echo " make stop - 停止所有服务" @echo " make restart - 重启所有服务" @echo " make logs - 查看实时日志" @echo " make lint - 代码检查" @echo " make clean - 清理构建产物" @echo "" @echo " Docker 部署:" @echo " make docker-up - 构建并启动所有容器" @echo " make docker-down - 停止并移除所有容器" @echo " make docker-build - 重新构建镜像(不启动)" @echo " make docker-logs - 查看容器日志" @echo " make docker-embed - 单容器部署(embed 模式,前后端合一)" @echo "" @echo " 二进制部署:" @echo " make build-binary - 编译单二进制(前端嵌入后端)" # ==================== 本地开发 ==================== install: @echo "安装后端依赖..." cd backend && go mod download @echo "安装前端依赖..." cd frontend && npm install dev: ./run.sh start build-ui: @echo "构建前端..." cd frontend && npm run build build-api: @echo "构建后端..." cd backend && CGO_ENABLED=0 go build -o aiops-server ./cmd/ build: build-api build-ui status: ./run.sh status stop: ./run.sh stop restart: ./run.sh restart logs: @tail -f backend/logs/server.log frontend/logs/dev.log 2>/dev/null || echo "日志文件不存在" lint: @echo "检查后端代码..." cd backend && go vet ./... @echo "检查前端代码..." cd frontend && npm run lint 2>/dev/null || echo "前端 lint 未配置,跳过" clean: @echo "清理构建产物..." rm -f backend/aiops-server rm -rf frontend/dist rm -f backend/logs/*.log frontend/logs/*.log @echo "清理完成" # ==================== Docker 部署(双容器:前端 nginx + 后端) ==================== docker-up: docker-compose up -d --build docker-down: docker-compose down docker-build: docker-compose build docker-logs: docker-compose logs -f # ==================== Docker 部署(单容器:embed 模式) ==================== docker-embed: docker-compose -f docker-compose.embed.yml up -d --build # ==================== 二进制部署(embed 模式) ==================== build-binary: build-ui @echo "构建单二进制(前端嵌入后端)..." @mkdir -p backend/cmd/static @cp -r frontend/dist/* backend/cmd/static/ cd backend && CGO_ENABLED=0 go build -ldflags="-s -w" -o ../aiops ./cmd/ @rm -rf backend/cmd/static @echo "✓ 二进制已生成: ./aiops" @echo " 部署: scp aiops deploy/binary/install.sh root@:/tmp/ && ssh root@ 'cd /tmp && bash install.sh install'"