Spaces:
Sleeping
Sleeping
| 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 | |