Last active
April 10, 2026 18:51
-
-
Save HauptJ/591b833eb5c82fa9e30f39ce7fe97ba7 to your computer and use it in GitHub Desktop.
ZeroClaw MCPJungle Develompment Docker Compose
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # ZeroClaw Docker Compose Example | |
| # | |
| # Quick start: | |
| # 1. Copy this file and set your API key | |
| # 2. Run: docker compose up -d | |
| # 3. Access gateway at http://localhost:42617 | |
| # | |
| # For more info: https://github.com/zeroclaw-labs/zeroclaw | |
| services: | |
| zeroclaw: | |
| image: docker.io/hauptj/zeroclaw-debian:0.6.9 | |
| # For ARM64 environments where the distroless image exits immediately, | |
| # switch to the Debian compatibility image instead: | |
| # image: ghcr.io/zeroclaw-labs/zeroclaw:debian | |
| # Or build locally (distroless, no shell): | |
| # build: . | |
| # Or build the Debian variant (includes bash, git, curl): | |
| # build: | |
| # context: . | |
| # dockerfile: Dockerfile.debian | |
| container_name: zeroclaw | |
| restart: unless-stopped | |
| environment: | |
| # Required: Your LLM provider API key | |
| - API_KEY=FILL_ME_IN | |
| # Or use the prefixed version: | |
| # - ZEROCLAW_API_KEY=${ZEROCLAW_API_KEY:-} | |
| # Optional: LLM provider (default: openrouter) | |
| # Options: openrouter, openai, anthropic, ollama | |
| - PROVIDER=anthropic | |
| # Allow public bind inside Docker (required for container networking) | |
| - ZEROCLAW_ALLOW_PUBLIC_BIND=true | |
| # Default gateway port inside container | |
| - ZEROCLAW_GATEWAY_PORT=${ZEROCLAW_GATEWAY_PORT:-42617} | |
| # Optional: Model override | |
| - ZEROCLAW_MODEL=claude-sonnet-4-6 | |
| volumes: | |
| # Persist workspace and config (must match WORKDIR/HOME in Dockerfile) | |
| - zeroclaw-data:/zeroclaw-data | |
| ports: | |
| # Gateway API port (override HOST_PORT if 42617 is taken) | |
| - "${HOST_PORT:-42617}:${ZEROCLAW_GATEWAY_PORT:-42617}" | |
| # Resource limits | |
| deploy: | |
| resources: | |
| limits: | |
| cpus: '2' | |
| memory: 512M | |
| reservations: | |
| cpus: '0.5' | |
| memory: 32M | |
| # Health check — uses lightweight status instead of full diagnostics. | |
| # For images with curl, prefer: curl -f http://localhost:42617/health | |
| healthcheck: | |
| test: ["CMD", "zeroclaw", "status", "--format=exit-code"] | |
| interval: 60s | |
| timeout: 10s | |
| retries: 3 | |
| start_period: 10s | |
| db: | |
| image: postgres:17 | |
| container_name: mcpjungle-db | |
| environment: | |
| POSTGRES_USER: mcpjungle | |
| POSTGRES_PASSWORD: mcpjungle | |
| POSTGRES_DB: mcpjungle | |
| ports: | |
| - "5432:5432" | |
| volumes: | |
| - db_data:/var/lib/postgresql/data | |
| healthcheck: | |
| test: ["CMD-SHELL", "PGPASSWORD=mcpjungle pg_isready -U mcpjungle"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| restart: unless-stopped | |
| mcpjungle: | |
| image: ghcr.io/mcpjungle/mcpjungle:${MCPJUNGLE_IMAGE_TAG:-latest-stdio} | |
| container_name: mcpjungle-server | |
| environment: | |
| DATABASE_URL: postgres://mcpjungle:mcpjungle@db:5432/mcpjungle | |
| SERVER_MODE: ${SERVER_MODE:-development} | |
| OTEL_ENABLED: ${OTEL_ENABLED:-false} | |
| MCP_SERVER_INIT_REQ_TIMEOUT_SEC: ${MCP_SERVER_INIT_REQ_TIMEOUT_SEC:-10} | |
| ports: | |
| - "${HOST_PORT:-8080}:8080" | |
| volumes: | |
| # Mount host filesystem current directory to enable filesystem MCP server access | |
| - .:/host:ro | |
| # Other options: | |
| # - ${HOME}:/host/home:ro | |
| # - /tmp:/host/tmp:rw | |
| depends_on: | |
| db: | |
| condition: service_healthy | |
| restart: always | |
| volumes: | |
| zeroclaw-data: | |
| db_data: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment