Docker(可选)

Docker(可选)

适用范围

Docker 是可选的。当您想要容器化网关(可重复构建、干净隔离)或正在验证 Docker 流程时使用它。

Agent 沙盒也使用 Docker,但您不需要在 Docker 中运行完整的网关来使用沙盒工具。参见 /docs/gateway/sandboxing/。

Docker 是否适合我?

  • :您想要隔离的网关,或者您在不想全局安装 Node/工具的主机上运行。
  • :您想要最快的本地开发循环。使用正常安装流程:/docs/install/。

系统要求

  • Docker Desktop (macOS/Windows) 或 Docker Engine (Linux) + Docker Compose v2
  • 足够的磁盘空间用于镜像和日志

容器化网关(Docker Compose)

快速开始(推荐)

从 Moltbot 仓库根目录:

./docker-setup.sh

它的作用:

  • 构建网关镜像
  • 运行入门引导
  • 将网关 token 写入 .env
  • 通过 docker compose 启动网关

完成后:

  • 打开 http://127.0.0.1:18789/
  • 粘贴 token(控制 UI → 设置 → token)

数据存储位置(持久化)

容器是临时的;长期状态应该在主机上:

  • ~/.moltbot/(配置、凭据、会话)
  • ~/clawd/(工作区、内存、工件)

手动流程(compose)

docker build -t moltbot:local -f Dockerfile .
docker compose run --rm moltbot-cli onboard
docker compose up -d moltbot-gateway

验证

docker compose logs -f moltbot-gateway

健康探测(需要 token):

docker compose exec moltbot-gateway node dist/index.js health --token "$MOLTBOT_GATEWAY_TOKEN"

安装额外的系统包(可选)

如果您需要镜像内的包(例如 ffmpeg),请在镜像构建时安装:

export MOLTBOT_DOCKER_APT_PACKAGES="ffmpeg build-essential"
./docker-setup.sh

额外挂载(可选)

将其他主机文件夹挂载到容器中:

export MOLTBOT_EXTRA_MOUNTS="$HOME/.codex:/home/node/.codex:ro,$HOME/github:/home/node/github:rw"
./docker-setup.sh

持久化整个容器主目录(可选)

如果您希望 /home/node 在容器重新创建后存活,请使用命名卷:

export MOLTBOT_HOME_VOLUME="moltbot_home"
./docker-setup.sh

重要:将所需的二进制文件烘焙到镜像中

如果 skill 依赖于外部二进制文件,不要在运行中的容器内安装它们。将它们添加到 Dockerfile(或镜像构建步骤),然后重建并重新启动。

在 VPS 上运行

从以下开始:

  • Hetzner (Docker VPS):/docs/platforms/hetzner/
  • GCP (Docker VM):/docs/platforms/gcp/

Agent 沙盒(主机网关 + Docker 工具)

启用沙盒时,非主会话在 Docker 内运行工具,而网关停留在主机上。深入探讨:/docs/gateway/sandboxing/。

延伸阅读

  • 源路径:install/docker.md