精简项目:只保留 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:
+1
-46
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user