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
:日志级别,默认为INFOLOG_MAX_SIZE
:单个日志文件最大大小,默认为10MBLOG_BACKUP_COUNT
:保留的日志备份数量,默认为5个
高级功能配置
DEFAULT_THINKING_MODE_THINKDEEP
:默认思考模式深度,设置为highDISABLED_TOOLS
:禁用的工具列表MAX_MCP_OUTPUT_TOKENS
:最大输出token限制
服务器基础配置
PYTHONUNBUFFERED=1
:确保Python输出无缓冲PYTHONPATH=/app
:设置Python模块搜索路径TZ
:时区设置,默认为UTC
数据持久化方案
配置了三种数据持久化方式:
- 日志目录挂载:将容器内的
/app/logs
映射到宿主机的./logs
目录 - 配置卷:使用名为
zen-mcp-config
的命名卷存储配置文件 - 时区同步:将宿主机的
/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
部署建议
- 根据实际需求调整资源限制,特别是内存和CPU配置
- 生产环境建议使用Docker secrets管理API密钥
- 日志配置可根据业务量调整大小和保留数量
- 时区设置应根据服务器所在地修改
- 网络配置可根据实际网络环境调整子网范围
总结
这份Docker Compose配置为Gemini MCP Server提供了完整的容器化部署方案,涵盖了服务定义、资源配置、网络隔离、数据持久化和安全加固等多个方面。通过合理的默认值和灵活的配置选项,既保证了开箱即用的便利性,又为不同规模的部署场景提供了调整空间。