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 moltbot2. 配置环境
复制示例环境文件:
cp .env.example .env编辑 .env 设置:
# AI Provider
AI_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-...
# Gateway
GATEWAY_PORT=18789
# Optional: Logging
LOG_LEVEL=info3. 启动容器
docker-compose up -d4. 运行初始配置
docker exec -it moltbot pnpm moltbot setup5. 连接渠道
docker exec -it moltbot pnpm moltbot channels login6. 验证
docker exec moltbot pnpm moltbot healthDocker 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:18789WhatsApp 二维码不显示
使用交互模式。显示二维码需要 -it 参数。
docker exec -it moltbot pnpm moltbot channels login whatsapp安全注意事项
- 切勿提交包含密钥的 .env 文件
- 生产环境使用 Docker secrets
- 尽可能以非 root 用户运行
- 限制容器权限
- 保持镜像更新