首页
/ Gemini MCP Server 容器化部署指南

Gemini MCP Server 容器化部署指南

2025-07-09 04:04:56作者:盛欣凯Ernestine

项目概述

Gemini MCP Server 是一个基于AI技术的模型上下文协议服务器,通过容器化部署方案,可以快速搭建一个支持多种AI模型API的服务环境。该项目采用Docker Compose进行编排,提供了完整的服务配置方案。

核心服务配置

基础服务定义

服务名称为zen-mcp,基于项目目录下的Dockerfile构建镜像,使用runtime构建目标。容器命名为zen-mcp-server,使用最新构建的zen-mcp-server:latest镜像。

容器标签

为容器设置了多个描述性标签,便于识别和管理:

  • 服务标识:com.zen-mcp.service=zen-mcp-server
  • 版本信息:com.zen-mcp.version=1.0.0
  • 环境类型:com.zen-mcp.environment=production
  • 功能描述:com.zen-mcp.description=AI-powered Model Context Protocol server

环境变量配置

模型相关配置

  • DEFAULT_MODEL:设置默认使用的AI模型,默认为auto自动选择
  • 多个API密钥配置,支持主流AI服务提供商:
    • Gemini、Google、OpenAI、Anthropic、XAI等API密钥
    • 自定义API端点配置(URL、密钥和模型名称)

日志配置

  • LOG_LEVEL:日志级别,默认为INFO
  • LOG_MAX_SIZE:单个日志文件最大大小,默认为10MB
  • LOG_BACKUP_COUNT:保留的日志备份数量,默认为5个

高级功能配置

  • DEFAULT_THINKING_MODE_THINKDEEP:默认思考模式深度,设置为high
  • DISABLED_TOOLS:禁用的工具列表
  • MAX_MCP_OUTPUT_TOKENS:最大输出token限制

服务器基础配置

  • PYTHONUNBUFFERED=1:确保Python输出无缓冲
  • PYTHONPATH=/app:设置Python模块搜索路径
  • TZ:时区设置,默认为UTC

数据持久化方案

配置了三种数据持久化方式:

  1. 日志目录挂载:将容器内的/app/logs映射到宿主机的./logs目录
  2. 配置卷:使用名为zen-mcp-config的命名卷存储配置文件
  3. 时区同步:将宿主机的/etc/localtime挂载到容器内

网络配置

创建了一个名为zen-network的桥接网络,配置了IP地址管理(IPAM):

  • 子网范围:172.20.0.0/16
  • 使用默认的bridge驱动

资源管理

通过deploy.resources设置了资源限制:

  • 内存限制:512MB(保留256MB)
  • CPU限制:0.5核(保留0.25核)

健康检查机制

配置了完善的健康检查策略:

  • 检查命令:执行healthcheck.py脚本
  • 检查间隔:30秒
  • 超时时间:10秒
  • 重试次数:3次
  • 启动宽限期:40秒

安全加固措施

实施了多项安全增强配置:

  • no-new-privileges:true:防止权限提升
  • read_only: true:容器文件系统只读
  • 临时文件系统配置:
    • /tmp:100MB大小,禁用执行和suid
    • /app/tmp:50MB大小,同样禁用执行和suid

部署建议

  1. 根据实际需求调整资源限制,特别是内存和CPU配置
  2. 生产环境建议使用Docker secrets管理API密钥
  3. 日志配置可根据业务量调整大小和保留数量
  4. 时区设置应根据服务器所在地修改
  5. 网络配置可根据实际网络环境调整子网范围

总结

这份Docker Compose配置为Gemini MCP Server提供了完整的容器化部署方案,涵盖了服务定义、资源配置、网络隔离、数据持久化和安全加固等多个方面。通过合理的默认值和灵活的配置选项,既保证了开箱即用的便利性,又为不同规模的部署场景提供了调整空间。