docker-compose.yml•1.49 kB
version: '3.8'
services:
mcp-server:
build:
context: .
dockerfile: Dockerfile
image: mcp-template:latest
container_name: mcp-template-server
restart: unless-stopped
# Environment variables
environment:
# Registry configuration
- REGISTRY_API_KEY=${REGISTRY_API_KEY:-}
- REGISTRY__URL=${REGISTRY__URL:-https://registry.example.com/api/v1}
- REGISTRY__ENABLED=${REGISTRY__ENABLED:-false}
# Server configuration
- SERVER__NAME=${SERVER__NAME:-mcp-template-server}
- SERVER__DEBUG=${SERVER__DEBUG:-false}
# Logging configuration
- LOGGING__LEVEL=${LOGGING__LEVEL:-INFO}
- LOGGING__FORMAT=${LOGGING__FORMAT:-json}
# Mount configuration and logs
volumes:
- ./config:/app/config:ro
- ./logs:/app/logs
# Network
networks:
- mcp-network
# Resource limits
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
reservations:
cpus: '0.5'
memory: 256M
# Health check
healthcheck:
test: ["CMD", "python", "-c", "import sys; sys.exit(0)"]
interval: 30s
timeout: 10s
retries: 3
start_period: 5s
# Optional: Add a monitoring/logging service
# grafana:
# image: grafana/grafana:latest
# container_name: mcp-grafana
# ports:
# - "3000:3000"
# networks:
# - mcp-network
networks:
mcp-network:
driver: bridge
volumes:
logs: