Saltar al contenido principal

Despliegue con Docker

Descripción de las imágenes

MCP Gateway ofrece dos métodos de despliegue:

  1. Despliegue All-in-One: Todos los servicios empaquetados en un solo contenedor, adecuado para despliegues en una sola máquina o uso local
  2. Despliegue multi-contenedor: Cada servicio desplegado de forma independiente, adecuado para entornos de producción o despliegues en clúster

Registros de imágenes

Las imágenes se publican en los siguientes tres registros:

  • Docker Hub: docker.io/ifuryst/mcp-gateway-*
  • GitHub Container Registry: ghcr.io/mcp-ecosystem/mcp-gateway/*
  • Aliyun Container Registry: registry.ap-southeast-1.aliyuncs.com/mcp-ecosystem/mcp-gateway-*

ghcr admite directorios multinivel, por lo que la organización es más clara, mientras que los registros de Docker y Aliyun solo permiten un nivel de directorio, por lo que los nombres de las imágenes se concatenan con -

Etiquetas de imágenes

  • latest: Última versión
  • vX.Y.Z: Número de versión específico

Nota: ¡MCP Gateway está actualmente en rápida iteración! Por lo tanto, se recomienda desplegar usando números de versión para mayor confiabilidad

Imágenes disponibles

# Versión All-in-One
docker pull docker.io/ifuryst/mcp-gateway-allinone:latest
docker pull ghcr.io/mcp-ecosystem/mcp-gateway/allinone:latest
docker pull registry.ap-southeast-1.aliyuncs.com/mcp-ecosystem/mcp-gateway-allinone:latest

# API Server
docker pull docker.io/ifuryst/mcp-gateway-apiserver:latest
docker pull ghcr.io/mcp-ecosystem/mcp-gateway/apiserver:latest
docker pull registry.ap-southeast-1.aliyuncs.com/mcp-ecosystem/mcp-gateway-apiserver:latest

# MCP Gateway
docker pull docker.io/ifuryst/mcp-gateway-mcp-gateway:latest
docker pull ghcr.io/mcp-ecosystem/mcp-gateway/mcp-gateway:latest
docker pull registry.ap-southeast-1.aliyuncs.com/mcp-ecosystem/mcp-gateway-mcp-gateway:latest

# Mock User Service
docker pull docker.io/ifuryst/mcp-gateway-mock-user-svc:latest
docker pull ghcr.io/mcp-ecosystem/mcp-gateway/mock-user-svc:latest
docker pull registry.ap-southeast-1.aliyuncs.com/mcp-ecosystem/mcp-gateway-mock-user-svc:latest

# Frontend web
docker pull docker.io/ifuryst/mcp-gateway-web:latest
docker pull ghcr.io/mcp-ecosystem/mcp-gateway/web:latest
docker pull registry.ap-southeast-1.aliyuncs.com/mcp-ecosystem/mcp-gateway-web:latest

Despliegue

Despliegue All-in-One

El despliegue All-in-One empaqueta todos los servicios en un solo contenedor, adecuado para despliegues en una sola máquina o uso local. Incluye los siguientes servicios:

  • API Server: Backend de la plataforma de administración, se puede entender como el plano de control
  • MCP Gateway: Servicio principal, responsable del servicio de gateway real, se puede entender como el plano de datos
  • Mock User Service: Servicio de usuario simulado, proporciona un servicio de usuario para pruebas (sus servicios API existentes pueden ser similares a este)
  • Frontend web: Frontend de la plataforma de administración, proporciona una interfaz de administración visual
  • Nginx: Proxy inverso para los otros servicios

Utiliza Supervisor para gestionar los procesos de servicio. Todos los registros se envían a stdout

Descripción de puertos

  • 8080: Puerto de la interfaz web
  • 5234: Puerto del API Server
  • 5235: Puerto del MCP Gateway
  • 5335: Puerto de administración del MCP Gateway (alberga interfaces internas como reload, no exponer en producción)
  • 5236: Puerto del Mock User Service

Persistencia de datos

Se recomienda montar los siguientes directorios:

  • /app/configs: Directorio de archivos de configuración
  • /app/data: Directorio de datos
  • /app/.env: Archivo de variables de entorno

Comandos de ejemplo

  1. Crear los directorios necesarios y descargar los archivos de configuración:
mkdir -p mcp-gateway/{configs,data}
cd mcp-gateway/
curl -sL https://raw.githubusercontent.com/mcp-ecosystem/mcp-gateway/refs/heads/main/configs/apiserver.yaml -o configs/apiserver.yaml
curl -sL https://raw.githubusercontent.com/mcp-ecosystem/mcp-gateway/refs/heads/main/configs/mcp-gateway.yaml -o configs/mcp-gateway.yaml
curl -sL https://raw.githubusercontent.com/mcp-ecosystem/mcp-gateway/refs/heads/main/.env.example -o .env.allinone

Los LLMs se pueden cambiar según sea necesario, por ejemplo, a Qwen (necesita ser compatible con OpenAI)

OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1/
OPENAI_API_KEY=sk-yourkeyhere
OPENAI_MODEL=qwen-turbo
  1. Ejecutar MCP Gateway usando Docker:
# Usar imagen de Aliyun Container Registry (recomendado para servidores o dispositivos en China continental)
docker run -d \
--name mcp-gateway \
-p 8080:80 \
-p 5234:5234 \
-p 5235:5235 \
-p 5335:5335 \
-p 5236:5236 \
-e ENV=production \
-v $(pwd)/configs:/app/configs \
-v $(pwd)/data:/app/data \
-v $(pwd)/.env.allinone:/app/.env \
--restart unless-stopped \
registry.ap-southeast-1.aliyuncs.com/mcp-ecosystem/mcp-gateway-allinone:latest

# Usar imagen de GitHub Container Registry
docker run -d \
--name mcp-gateway \
-p 8080:80 \
-p 5234:5234 \
-p 5235:5235 \
-p 5335:5335 \
-p 5236:5236 \
-e ENV=production \
-v $(pwd)/configs:/app/configs \
-v $(pwd)/data:/app/data \
-v $(pwd)/.env.allinone:/app/.env \
--restart unless-stopped \
ghcr.io/mcp-ecosystem/mcp-gateway/allinone:latest

Consideraciones

  1. Asegurarse de que los archivos de configuración y variables de entorno estén correctamente configurados
  2. Se recomienda usar etiquetas de versión en lugar de latest
  3. Para entornos de producción, se recomienda configurar límites de recursos apropiados
  4. Asegurarse de que los directorios montados tengan los permisos correctos