Skip to main content

Docker 部署

本指南介绍使用 Docker 部署 MCPHub,包括开发和生产配置。

Docker 快速开始

使用预构建镜像

标准 MCPHub 镜像内置 Node.js/pnpm、Python、uv/uvx、Git 和构建工具。如果需要为 Rust MCP server 使用 Cargo 和稳定版 Rust 工具链,请使用 latest-full 镜像。

从源码构建

构建扩展功能版本

Docker 镜像支持 INSTALL_EXT 构建参数以包含额外工具。发布的 -full 镜像会启用此参数:
INSTALL_EXT=true 包含的功能:
  • 稳定版 Rust + Cargo:通过 rustup 安装,用于基于 Rust 的 MCP server。
  • Docker 引擎:完整的 Docker 守护进程和 CLI,用于容器管理。在特权模式下运行时,守护进程会自动启动。
  • Chrome + Firefox(供 Playwright 使用,仅 amd64):用于浏览器自动化任务
扩展镜像较大,但为高级用例提供了额外功能。
Docker-in-Docker 安全注意事项:
  • 特权模式--privileged):容器内启动 Docker 守护进程需要此权限。这会授予容器在宿主机上的提升权限。
  • Docker socket 挂载/var/run/docker.sock):使容器可以访问宿主机的 Docker 守护进程。两种方式都应仅在可信环境中使用。
  • 生产环境建议使用 Docker socket 挂载而非特权模式,以提高安全性。

Docker Compose 设置

基本配置

创建 docker-compose.yml 文件:

生产配置(包含 Nginx)

环境变量

为 Docker Compose 创建 .env 文件:

开发设置

开发 Docker Compose

创建 docker-compose.dev.yml

开发 Dockerfile

创建 Dockerfile.dev

运行应用程序

开发模式

生产模式

配置管理

MCP 设置卷挂载

创建您的 mcp_settings.json

密钥管理

对于生产环境,使用 Docker 密钥:

数据持久化

数据库备份

docker-compose.yml 中添加备份服务:
创建 scripts/backup.sh
运行备份:

监控和健康检查

健康检查端点

在您的应用程序中添加:

Docker 健康检查

使用 Watchtower 监控

添加自动更新:

故障排除

常见问题

容器启动失败:使用 docker-compose logs mcphub 检查日志 数据库连接错误:确保 PostgreSQL 健康且可访问 端口冲突:检查端口 3000/5432 是否已被占用 卷挂载问题:验证文件路径和权限

调试命令

性能优化

此 Docker 设置为 MCPHub 提供了完整的容器化环境,包含开发和生产配置。