精简项目:只保留 docker_logs + health + info 三个工具

- 移除 database/middleware 等复杂模块,先聚焦核心功能
- docker_logs:封装 docker logs --tail N <container>
- 修复 go.mod 版本为 1.24 匹配 Docker 构建镜像
- Dockerfile 改用 alpine + docker-cli,避免 scratch 无 shell 问题
- docker-compose.yml 简化为单服务定义

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
yangzhaohan
2026-07-06 10:42:23 +08:00
parent fb2c3a6cae
commit 093511bbdd
23 changed files with 144 additions and 1352 deletions
+1 -46
View File
@@ -1,5 +1,3 @@
version: "3.8"
services:
ops-mcp:
build:
@@ -8,50 +6,7 @@ services:
image: ops-mcp:latest
container_name: ops-mcp
restart: unless-stopped
ports:
- "${OPS_MCP_PORT:-8080}:8080"
environment:
- OPS_MCP_ENV=${OPS_MCP_ENV:-prod}
# 数据库密码通过环境变量注入,不写在配置文件里
- OPS_MCP_DATABASES_MAIN_DB_DSN=postgres://ops_readonly:${DB_PASSWORD}@db:5432/ops?sslmode=disable&default_transaction_read_only=on
- JWT_SECRET=${JWT_SECRET}
- OPS_MCP_TRANSPORT=sse
volumes:
# 只读挂载 Docker socket,允许查询容器信息但无法执行写操作
- /var/run/docker.sock:/var/run/docker.sock:ro
# 挂载自定义配置文件(可选)
- ./config/prod.yaml:/config/prod.yaml:ro
# 安全加固
read_only: true
tmpfs:
- /tmp:size=10M,mode=1777
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
# 健康检查
healthcheck:
test: ["CMD", "/server", "-env=prod"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
# 可选:本地开发用的 PostgreSQL
db:
image: postgres:17-alpine
container_name: ops-mcp-db
restart: unless-stopped
environment:
- POSTGRES_USER=ops_readonly
- POSTGRES_PASSWORD=${DB_PASSWORD:-devpassword}
- POSTGRES_DB=ops
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
profiles:
- dev
- full
volumes:
pgdata: