Go MCP Server 项目初始化:工具注册架构 + 编译运行通过
- Tool 接口 + Registry 注册中心,工具模块化插拔 - system 工具:health / info - database 工具:db_query / db_tables / db_table_info / db_explain(四层 SQL 安全) - docker 工具:docker_ps / docker_logs / docker_inspect(白名单 + 大小限制) - middleware:auth(JWT+APIKey)/ ratelimit(令牌桶)/ audit(slog 结构化) - stdio / SSE 双传输模式,Viper 多环境配置 - Dockerfile 多阶段构建(golang:alpine → scratch),~15MB 镜像 - docker-compose.yml 一键部署 + 安全加固(read_only / no-new-privileges / cap_drop) - go build ./... / go vet ./... / go test ./... 全部通过 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
.PHONY: build run test lint image clean
|
||||
|
||||
APP_NAME := ops-mcp
|
||||
IMAGE_NAME := ops-mcp
|
||||
GO := go
|
||||
GOFLAGS := -ldflags="-s -w"
|
||||
|
||||
# ---- Build ----
|
||||
|
||||
build:
|
||||
$(GO) build $(GOFLAGS) -o $(APP_NAME) ./cmd/server
|
||||
|
||||
run: build
|
||||
./$(APP_NAME) -env=dev
|
||||
|
||||
# ---- Test ----
|
||||
|
||||
test:
|
||||
$(GO) test -race -v ./...
|
||||
|
||||
test-integration:
|
||||
$(GO) test -race -v ./test/...
|
||||
|
||||
# ---- Lint ----
|
||||
|
||||
lint:
|
||||
golangci-lint run ./...
|
||||
|
||||
# ---- Docker Compose ----
|
||||
|
||||
up:
|
||||
docker compose up -d --build
|
||||
|
||||
up-dev:
|
||||
docker compose --profile dev up -d --build
|
||||
|
||||
down:
|
||||
docker compose down
|
||||
|
||||
logs:
|
||||
docker compose logs -f
|
||||
|
||||
# ---- Docker ----
|
||||
|
||||
image:
|
||||
docker build -t $(IMAGE_NAME):latest .
|
||||
|
||||
# ---- Utils ----
|
||||
|
||||
clean:
|
||||
rm -f $(APP_NAME)
|
||||
|
||||
tidy:
|
||||
$(GO) mod tidy
|
||||
Reference in New Issue
Block a user