# Docker Compose configuration for Copernicus MCP Server
version: '3.8'
services:
copernicus-mcp:
build: .
container_name: copernicus-mcp-server
restart: unless-stopped
ports:
- "3000:3000" # HTTP transport port
environment:
- COPERNICUS_API_BASE=https://catalogue.dataspace.copernicus.eu
- HTTP_TIMEOUT=30
- MAX_RESULTS=50
- PYTHONUNBUFFERED=1
volumes:
- ./logs:/app/logs
healthcheck:
test: ["CMD", "python", "-c", "import sys; sys.exit(0)"]
interval: 30s
timeout: 3s
retries: 3
start_period: 10s
command: ["--transport", "http", "--host", "0.0.0.0", "--port", "3000"]
networks:
- mcp-network
# Optional: Add a test client for development
test-client:
build: .
container_name: copernicus-test-client
depends_on:
- copernicus-mcp
environment:
- MCP_SERVER_URL=http://copernicus-mcp:3000
volumes:
- ./examples:/app/examples
command: >
sh -c "sleep 5 &&
echo 'Testing connection to Copernicus MCP Server...' &&
python examples/basic_usage.py"
networks:
- mcp-network
# Optional: Monitoring with Prometheus (if metrics are added)
prometheus:
image: prom/prometheus:latest
container_name: copernicus-prometheus
restart: unless-stopped
ports:
- "9090:9090"
volumes:
- ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml
- 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
# Optional: Visualization with Grafana
grafana:
image: grafana/grafana:latest
container_name: copernicus-grafana
restart: unless-stopped
ports:
- "3001:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
- GF_USERS_ALLOW_SIGN_UP=false
volumes:
- grafana-data:/var/lib/grafana
- ./monitoring/grafana-dashboards:/etc/grafana/provisioning/dashboards
- ./monitoring/grafana-datasources:/etc/grafana/provisioning/datasources
networks:
- mcp-network
networks:
mcp-network:
driver: bridge
name: copernicus-mcp-network
volumes:
prometheus-data:
driver: local
grafana-data:
driver: local