docker-compose.ymlโข2.16 kB
version: '3.8'
services:
mcp-optimizer:
build:
context: .
dockerfile: Dockerfile
container_name: mcp-optimizer
restart: unless-stopped
environment:
- LOG_LEVEL=DEBUG
- MAX_SOLVE_TIME=300
- MAX_MEMORY_MB=2048
- MAX_CONCURRENT_REQUESTS=5
- DEBUG=true
# MCP SSE server configuration for remote access
- TRANSPORT_MODE=sse
- SERVER_HOST=0.0.0.0
- SERVER_PORT=8000
volumes:
# Mount source code for development (comment out for production)
- ./src:/app/src:ro
- ./main.py:/app/main.py:ro
ports:
- "8000:8000"
healthcheck:
test: ["CMD", "python", "-c", "from mcp_optimizer.mcp_server import create_mcp_server; create_mcp_server()"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
networks:
- mcp-network
# Optional: Add monitoring with Prometheus
prometheus:
image: prom/prometheus:latest
container_name: mcp-prometheus
restart: unless-stopped
ports:
- "9090:9090"
volumes:
- ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/etc/prometheus/console_libraries'
- '--web.console.templates=/etc/prometheus/consoles'
- '--storage.tsdb.retention.time=200h'
- '--web.enable-lifecycle'
networks:
- mcp-network
profiles:
- monitoring
# Optional: Add Grafana for visualization
grafana:
image: grafana/grafana:latest
container_name: mcp-grafana
restart: unless-stopped
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
- grafana_data:/var/lib/grafana
- ./monitoring/grafana/dashboards:/etc/grafana/provisioning/dashboards:ro
- ./monitoring/grafana/datasources:/etc/grafana/provisioning/datasources:ro
networks:
- mcp-network
profiles:
- monitoring
networks:
mcp-network:
driver: bridge
volumes:
prometheus_data:
grafana_data: