2025-12-20 20:40:23 +00:00
|
|
|
services:
|
|
|
|
|
fyp-traefik:
|
|
|
|
|
image: traefik:v2.10
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
command:
|
|
|
|
|
- "--api.insecure=true"
|
|
|
|
|
- "--providers.docker=true"
|
|
|
|
|
- "--providers.docker.exposedbydefault=false"
|
|
|
|
|
- "--entrypoints.mcp.address=:${MCP_PORT:-58001}"
|
|
|
|
|
ports:
|
|
|
|
|
- "${MCP_PORT:-58001}:${MCP_PORT:-58001}"
|
|
|
|
|
- "8080:8080"
|
|
|
|
|
volumes:
|
|
|
|
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
|
|
|
networks:
|
|
|
|
|
- mcp-internal
|
|
|
|
|
|
|
|
|
|
fyp-mcp:
|
|
|
|
|
build:
|
|
|
|
|
context: ../..
|
|
|
|
|
dockerfile: compose/dev/mcp/Dockerfile
|
|
|
|
|
container_name: dynavera-mcp-server
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
deploy:
|
|
|
|
|
mode: replicated
|
|
|
|
|
replicas: 1
|
2025-12-21 23:20:35 +00:00
|
|
|
resources:
|
|
|
|
|
reservations:
|
|
|
|
|
devices:
|
|
|
|
|
- driver: nvidia
|
|
|
|
|
count: all
|
|
|
|
|
capabilities: [gpu]
|
2025-12-20 20:40:23 +00:00
|
|
|
env_file:
|
|
|
|
|
- ../../.env
|
|
|
|
|
environment:
|
|
|
|
|
- MCP_HTTP_HOST=0.0.0.0
|
|
|
|
|
- MCP_HTTP_PORT=8001
|
2025-12-21 23:20:35 +00:00
|
|
|
- NVIDIA_VISIBLE_DEVICES=all
|
2025-12-20 20:40:23 +00:00
|
|
|
command: python -m mcp_agent.mcp_server
|
|
|
|
|
volumes:
|
|
|
|
|
- ../../:/app
|
|
|
|
|
- ${USERPROFILE}/.cache/gpt4all:/root/.cache/gpt4all:rw
|
2025-12-21 23:20:35 +00:00
|
|
|
- ../../build/rag_db:/app/build/rag_db
|
2025-12-20 20:40:23 +00:00
|
|
|
labels:
|
|
|
|
|
- "traefik.enable=true"
|
|
|
|
|
- "traefik.http.routers.fyp-mcp.rule=Host(`${MCP_DOMAIN}`)"
|
|
|
|
|
- "traefik.http.routers.fyp-mcp.entrypoints=mcp"
|
|
|
|
|
- "traefik.http.services.fyp-mcp.loadbalancer.server.port=8001"
|
|
|
|
|
- "com.centurylinklabs.watchtower.enable=true"
|
|
|
|
|
- "com.centurylinklabs.watchtower.scope=fyp"
|
|
|
|
|
networks:
|
|
|
|
|
- mcp-internal
|
|
|
|
|
|
|
|
|
|
networks:
|
|
|
|
|
mcp-internal:
|
|
|
|
|
driver: bridge
|
|
|
|
|
|
|
|
|
|
|