SpatialAI_MCP / docker /docker-compose.yml
avaliev's picture
Demo Deployment - 0.0.1 version
c75526e verified
version: '3.8'
services:
openproblems-mcp:
build:
context: ..
dockerfile: docker/Dockerfile
container_name: openproblems-spatial-mcp
restart: unless-stopped
# Environment variables
environment:
- PYTHONUNBUFFERED=1
- MCP_SERVER_NAME=OpenProblems-SpatialAI-MCP
- MCP_SERVER_VERSION=0.1.0
# Volumes for data persistence and Docker socket access
volumes:
- ../data:/app/data:rw
- ../work:/app/work:rw
- ../logs:/app/logs:rw
- /var/run/docker.sock:/var/run/docker.sock:ro # For Docker-in-Docker operations
# Network configuration
networks:
- openproblems-network
# Resource limits
deploy:
resources:
limits:
memory: 4G
cpus: '2.0'
reservations:
memory: 1G
cpus: '0.5'
# Health check
healthcheck:
test: ["CMD", "python", "-c", "import mcp; print('MCP SDK available')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# Logging configuration
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# Optional: Add a reverse proxy for HTTP transport
nginx-proxy:
image: nginx:alpine
container_name: openproblems-mcp-proxy
restart: unless-stopped
depends_on:
- openproblems-mcp
ports:
- "8080:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
networks:
- openproblems-network
profiles:
- http-transport
# Networks
networks:
openproblems-network:
driver: bridge
name: openproblems-spatial-network
# Volumes for data persistence
volumes:
data-volume:
driver: local
name: openproblems-data
work-volume:
driver: local
name: openproblems-work
logs-volume:
driver: local
name: openproblems-logs