Agregar servidor MCP Docker al stack
- Agregado servicio mcp-docker con imagen docker:cli - Configurado MCP Gateway en modo streaming (puerto 8080) - Expuesto a través de Traefik sin autenticación Authentik - Montado socket de Docker en modo solo lectura - Agregada variable MCP_DOMAIN al .env.example - Actualizado README con documentación del servicio
This commit is contained in:
@@ -48,6 +48,35 @@ services:
|
||||
- "traefik.http.middlewares.${APP_NAME}-cors.headers.accesscontrolmaxage=100"
|
||||
- "traefik.http.middlewares.${APP_NAME}-cors.headers.addvaryheader=true"
|
||||
|
||||
mcp-docker:
|
||||
image: docker:cli
|
||||
container_name: ${APP_NAME}-mcp-docker
|
||||
restart: unless-stopped
|
||||
command: mcp gateway run --port 8080 --transport streaming
|
||||
volumes:
|
||||
# Montar el socket de Docker para acceso al daemon
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
networks:
|
||||
- principal
|
||||
- traefik-network
|
||||
labels:
|
||||
# Traefik labels - Exposición sin autenticación
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-network"
|
||||
|
||||
# Service
|
||||
- "traefik.http.services.${APP_NAME}-mcp.loadbalancer.server.port=8080"
|
||||
|
||||
# Router sin autenticación
|
||||
- "traefik.http.routers.${APP_NAME}-mcp.rule=Host(`${MCP_DOMAIN}`)"
|
||||
- "traefik.http.routers.${APP_NAME}-mcp.entrypoints=websecure"
|
||||
- "traefik.http.routers.${APP_NAME}-mcp.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.${APP_NAME}-mcp.service=${APP_NAME}-mcp"
|
||||
|
||||
# Headers personalizados para WebSocket y streaming
|
||||
- "traefik.http.middlewares.${APP_NAME}-mcp-headers.headers.customrequestheaders.X-Forwarded-Proto=https"
|
||||
- "traefik.http.routers.${APP_NAME}-mcp.middlewares=${APP_NAME}-mcp-headers"
|
||||
|
||||
networks:
|
||||
principal:
|
||||
external: true
|
||||
|
||||
Reference in New Issue
Block a user