Moltbot Docker 安装

Docker 提供了一种可选的方式在容器中运行 Moltbot。适用于隔离环境、CI/CD,或者你偏好容器化部署。

注意:Docker 是可选的。对于大多数用户,我们推荐使用 macOS 应用 Linux systemd

太长不看

# 克隆仓库 git clone https://github.com/moltbot/moltbot.git cd moltbot # 构建并运行 docker-compose up -d # 配置(首次) docker exec -it moltbot pnpm moltbot setup # 连接渠道 docker exec -it moltbot pnpm moltbot channels login # 健康检查 docker exec moltbot pnpm moltbot health

何时使用 Docker

以下情况适合使用 Docker:

  • 需要与主机系统完全隔离
  • 需要跨环境的可复制部署
  • 在 Kubernetes 或类似编排系统中运行
  • 偏好容器化基础设施
  • 需要在 CI/CD 中运行端到端测试

如需热重载开发,请参阅 Gateway 开发

环境要求

  • Docker Engine 20.10+ (安装 Docker)
  • Docker Compose v2+ (Docker Desktop 自带)
  • Git

使用 Docker Compose 快速开始

1. 克隆仓库

git clone https://github.com/moltbot/moltbot.git cd moltbot

2. 配置环境

复制示例环境文件:

cp .env.example .env

编辑 .env 设置:

# AI Provider AI_PROVIDER=anthropic ANTHROPIC_API_KEY=sk-ant-... # Gateway GATEWAY_PORT=18789 # Optional: Logging LOG_LEVEL=info

3. 启动容器

docker-compose up -d

4. 运行初始配置

docker exec -it moltbot pnpm moltbot setup

5. 连接渠道

docker exec -it moltbot pnpm moltbot channels login

6. 验证

docker exec moltbot pnpm moltbot health

Docker Compose 配置

推荐的 docker-compose.yml:

version: '3.8' services: moltbot: build: . container_name: moltbot restart: unless-stopped ports: - "18789:18789" volumes: # 持久化配置和凭证 - ~/.clawdbot:/root/.clawdbot # 持久化工作空间 - ~/clawd:/root/clawd # 可选:为开发挂载 # - ./src:/app/src environment: - NODE_ENV=production - GATEWAY_PORT=18789 env_file: - .env

卷挂载

在容器重启之间持久化数据:

主机路径容器路径用途
~/.clawdbot/root/.clawdbot配置和凭证
~/clawd/root/clawd工作空间(技能、提示词)
重要提示:如果不挂载卷,移除容器时会丢失所有配置和凭证!

构建镜像

使用 Docker Compose

docker-compose build

手动构建

docker build -t moltbot:latest .

多平台构建

支持 ARM64 和 AMD64:

docker buildx build --platform linux/amd64,linux/arm64 -t moltbot:latest .

不使用 Compose 运行

docker run -d \ --name moltbot \ --restart unless-stopped \ -p 18789:18789 \ -v ~/.clawdbot:/root/.clawdbot \ -v ~/clawd:/root/clawd \ --env-file .env \ moltbot:latest

容器管理

查看日志

# 跟踪日志 docker logs -f moltbot # 最后 100 行 docker logs --tail 100 moltbot

执行命令

# 交互式 shell docker exec -it moltbot sh # 运行 moltbot CLI docker exec moltbot pnpm moltbot health docker exec -it moltbot pnpm moltbot channels login

重启

docker-compose restart # 或 docker restart moltbot

停止并移除

docker-compose down # 或 docker stop moltbot && docker rm moltbot

更新

使用 Docker Compose

# 拉取最新代码 git pull # 重新构建并重启 docker-compose up -d --build

手动更新

# 停止容器 docker stop moltbot # 拉取/构建新镜像 docker build -t moltbot:latest . # 移除旧容器 docker rm moltbot # 启动新容器 docker run -d --name moltbot ... moltbot:latest

健康检查

在 docker-compose.yml 中添加健康检查:

services: moltbot: # ... other config healthcheck: test: ["CMD", "pnpm", "moltbot", "health"] interval: 30s timeout: 10s retries: 3 start_period: 40s

资源限制

限制容器资源:

services: moltbot: # ... other config deploy: resources: limits: cpus: '1' memory: 512M reservations: cpus: '0.5' memory: 256M

网络配置

仅本地暴露

为了安全,只绑定到 localhost:

ports: - "127.0.0.1:18789:18789"

自定义网络

services: moltbot: networks: - moltbot-net networks: moltbot-net: driver: bridge

常见问题

容器立即退出
docker logs moltbot

常见原因:

  • 缺少环境变量
  • 无效的配置文件
  • 主机端口已被占用
卷权限被拒绝
sudo chown -R $(id -u):$(id -g) ~/.clawdbot ~/clawd

或以非 root 用户运行(高级):

services: moltbot: user: "1000:1000"
无法连接到 Gateway
docker port moltbot # 应显示:18789/tcp -> 0.0.0.0:18789
WhatsApp 二维码不显示

使用交互模式。显示二维码需要 -it 参数。

docker exec -it moltbot pnpm moltbot channels login whatsapp

安全注意事项

  • 切勿提交包含密钥的 .env 文件
  • 生产环境使用 Docker secrets
  • 尽可能以非 root 用户运行
  • 限制容器权限
  • 保持镜像更新

下一步

Docker 容器部署 | Moltbot 安装指南