Docker Compose生命周期管理服务

提供Docker Compose服务的生命周期管理,包括自动启动、状态监控和优雅关闭。

  • by matfax
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 matfax/docker-compose-mcp

使用说明

Docker编写MCP服务器

MCP服务器,为Docker Compose服务提供生命周期管理,具有自动启动、状态监控和优雅关闭功能。

需求:Python(见.Python版本)、Docker、Docker Compose、uv

CLI选项

# Basic usage
docker-compose-mcp /path/to/project

# Use specific compose file
docker-compose-mcp /path/to/project --compose-file docker-compose.dev.yml

# Enable debug logging
docker-compose-mcp /path/to/project --debug --log-level DEBUG

# All options
docker-compose-mcp PROJECT_DIR [--compose-file FILE] [--log-level LEVEL] [--debug]

选项:

  • PROJECT_DIR:Docker Compose项目目录的路径
  • --compose-file:编写文件名(默认:docker Compose.yml)
  • --log-level:日志记录级别-调试、信息、警告、错误(默认值:信息)
  • --debug:启用带有stderr日志记录的调试模式

添加到克劳德代码

添加到MCP设置中:

MCP Configuration (click to expand)
{
  "mcpServers": {
    "docker-compose-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--from",
        "git+https://github.com/matfax/docker-compose-mcp.git",
        "docker-compose-mcp",
        "/path/to/your/docker-compose-project"
      ]
    }
  }
}

对于本地安装:

{
  "mcpServers": {
    "docker-compose-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--from",
        "/path/to/docker-compose-mcp",
        "docker-compose-mcp",
        "/path/to/your/docker-compose-project"
      ]
    }
  }
}

可用的MCP工具

get_compose_status

返回所有服务和容器的当前状态:

  • 服务状态和健康状况
  • 容器信息和端口映射
  • 项目详细信息

get_compose_logs

使用以下选项检索Docker Compose日志:

  • service (可选):特定服务名称
  • tail (可选):日志行数(默认值:100)

restart_compose

重新启动所有Docker Compose服务。

特性

  • 自动生命周期管理:启动时自动启动组合服务,关闭时停止
  • 健康监测:跟踪容器运行状况和端口绑定
  • 信号处理:使用SIGINT/SIGTERM进行优雅关机
  • 环境加载:自动加载 docker.env 来自项目目录
  • 安全:所有操作的输入验证和子流程安全
  • 错误处理:使用结构化日志进行全面的错误处理

环境变量

创建一个 docker.env 项目目录中的文件:

POSTGRES_DB=myapp
POSTGRES_USER=user
POSTGRES_PASSWORD=password

MCP服务器在启动Docker Compose时会自动加载这些变量。

生命周期管理

  • 启动时:跑步 docker-compose up -d 在指定的项目目录中
  • 运行期间:提供MCP工具用于监控和管理
  • 关机时:优雅地奔跑 docker-compose down 停止服务
  • 信号处理:响应SIGINT/SIGTERM以实现干净关机

示例用法

# Basic usage with current directory
docker-compose-mcp .

# Use with specific project and compose file
docker-compose-mcp /home/user/my-app --compose-file docker-compose.prod.yml

# Debug mode for troubleshooting
docker-compose-mcp /home/user/my-app --debug --log-level DEBUG

服务器将自动启动您的Docker Compose服务,提供MCP工具进行管理,并在您退出时进行清理。