openclaw/docker-compose.yml
Muhsinun Chowdhury 51decc6535 feat(sandbox): add Docker-in-Docker path remapping for browser sandboxes
When the gateway runs inside a Docker container and creates sandbox
containers, volume mount paths need to be host paths, not container paths.

Changes:
- Add remapPathForDinD() function to remap container paths to host paths
- Add CLAWDBOT_SANDBOX_HOST_CONFIG_DIR and CLAWDBOT_SANDBOX_HOST_WORKSPACE_DIR
  environment variables to docker-compose.yml
- Use path remapping in both sandbox container and browser sandbox creation
- Add Docker CLI to gateway Dockerfile for Docker-in-Docker support

The path remapping is a no-op when the environment variables are not set,
so bare metal installations are unaffected.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 18:40:28 -05:00

51 lines
1.6 KiB
YAML

services:
moltbot-gateway:
image: ${CLAWDBOT_IMAGE:-moltbot:local}
user: root
environment:
HOME: /home/node
TERM: xterm-256color
CLAWDBOT_GATEWAY_TOKEN: ${CLAWDBOT_GATEWAY_TOKEN}
CLAUDE_AI_SESSION_KEY: ${CLAUDE_AI_SESSION_KEY}
CLAUDE_WEB_SESSION_KEY: ${CLAUDE_WEB_SESSION_KEY}
CLAUDE_WEB_COOKIE: ${CLAUDE_WEB_COOKIE}
# Docker-in-Docker: host paths for sandbox container volume mounts
CLAWDBOT_SANDBOX_HOST_CONFIG_DIR: ${CLAWDBOT_CONFIG_DIR}
CLAWDBOT_SANDBOX_HOST_WORKSPACE_DIR: ${CLAWDBOT_WORKSPACE_DIR}
volumes:
- ${CLAWDBOT_CONFIG_DIR}:/home/node/.clawdbot
- ${CLAWDBOT_WORKSPACE_DIR}:/home/node/clawd
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "${CLAWDBOT_GATEWAY_PORT:-18789}:18789"
- "${CLAWDBOT_BRIDGE_PORT:-18790}:18790"
init: true
restart: unless-stopped
command:
[
"node",
"dist/index.js",
"gateway",
"--bind",
"${CLAWDBOT_GATEWAY_BIND:-lan}",
"--port",
"${CLAWDBOT_GATEWAY_PORT:-18789}"
]
moltbot-cli:
image: ${CLAWDBOT_IMAGE:-moltbot:local}
environment:
HOME: /home/node
TERM: xterm-256color
BROWSER: echo
CLAUDE_AI_SESSION_KEY: ${CLAUDE_AI_SESSION_KEY}
CLAUDE_WEB_SESSION_KEY: ${CLAUDE_WEB_SESSION_KEY}
CLAUDE_WEB_COOKIE: ${CLAUDE_WEB_COOKIE}
volumes:
- ${CLAWDBOT_CONFIG_DIR}:/home/node/.clawdbot
- ${CLAWDBOT_WORKSPACE_DIR}:/home/node/clawd
stdin_open: true
tty: true
init: true
entrypoint: ["node", "dist/index.js"]