[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题

Deploy

Clone Repo

Github Openclaw Repo: https://github.com/openclaw/openclaw.git

shell 复制代码
git clone https://github.com/openclaw/openclaw.git

修改Setup.sh脚本

如果不修改脚本, 会出现openclaw Permission Denied的情况.

详细参考 Debug 章节的 ## 无法配对机器人的内容

主要是要进行 chown -R 1000:1000 "$OPENCLAW_CONFIG_DIR" 的操作

Deploy With Sh Script

使用脚本./docker-setup.sh

该脚本会自动完成:

  1. 构建 Docker 镜像(IMAGE_NAME="${OPENCLAW_IMAGE:-openclaw:local}")
  2. 运行交互式 onboarding 向导
  3. 生成 Gateway Token 并写入 .env
  4. 启动网关服务
shell 复制代码
./docker-setup.sh

如果你好奇官方脚本做了什么, 可以点击查看一下内容:
docker-compose.yaml文件做了什么

docker-compose.yml 定义了两个服务:

openclaw-gateway (网关服务)

  • 端口: 18789 (网关), 18790 (桥接)
  • 绑定: 默认 lan (局域网可访问)
  • 重启策略: unless-stopped
  • 持久化: 配置目录和工作空间挂载到主机

openclaw-cli (CLI 服务)

  • 交互式终端 (tty: true, stdin_open: true)
  • 用于执行命令、配置通道、运行 onboarding

Check Docker Image

整个Image大小: 4.+GB

Setup

开始Setup ClawBot

Basic

接受风险, 选择快速开始模式

Choose Model

我使用的是: GLM4.7模型

感觉Lite的额度都基本够一些使用了, 我平时额度用不完, 还可以继续压榨

配置API Key

选择模型

Choose Bot API

不得不喷一下国内那些App对于Bot的适配还需要开源人自己适配, 垃圾

参考下面的# 接入Bot章节的内容接入Bot的API

Other

一些常见选项

完成Onboard配置

Web Dashboard配置

我中途不小心kill了Docker, 我使用docker compose up -d openclaw-gateway指令恢复

配置都存放在~/.openclaw/, 所以没事
检查Token(这一步不需要, URL中携带了Token)

使用cat ~/.openclaw/openclaw.json | grep token找到你需要在Web上配置的Token

修改配置文件: vim ~/.openclaw/openclaw.json

添加:

复制代码
    "controlUi": {
      "enabled": true,
      "allowInsecureAuth": true
    },

修改完之后不需要重启服务, 就可以连接成功

接入Bot

TG Bot

使用 BotFather 创建Bot

文档: https://core.telegram.org/bots

复制代码
/newbot - create a new bot

使用 \newbot 指令

复制代码
Alright, a new bot. How are we going to call it? Please choose a name for your bot.

然后会提出输入Bot的名字.

Bot名字规范: Good. Now let's choose a username for your bot. It must end in bot. Like this, for example: TetrisBot or tetris_bot.

输入了预期的Bot名字之后, 会给你Bot的认证Token

添加:

Setup ClawBot

配置Token

Pair TG Bot

复制代码
openclaw pairing approve telegram <code>

需要在容器内部执行, 这里存在一个坑

我使用 docker compose up openclaw-cli pairing approve telegram <Code> 指令解决了问题

Debug

TG Bot无法回复

被墙了

ClawBot吃Env配置代理, 但是在容器中, 我一直没有配起来

yaml 复制代码
  openclaw-gateway:
    image: ${OPENCLAW_IMAGE:-openclaw:local}
    network_mode: "host"
    environment:
      HOME: /home/node
      TERM: xterm-256color
      OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
      CLAUDE_AI_SESSION_KEY: ${CLAUDE_AI_SESSION_KEY}
      CLAUDE_WEB_SESSION_KEY: ${CLAUDE_WEB_SESSION_KEY}
      CLAUDE_WEB_COOKIE: ${CLAUDE_WEB_COOKIE}
      # 代理配置:现在可以直接用 127.0.0.1 了
      http_proxy: http://127.0.0.1:20171
      https_proxy: http://127.0.0.1:20171
      all_proxy: socks5h://127.0.0.1:20170
      HTTP_PROXY: http://127.0.0.1:20171
      HTTPS_PROXY: http://127.0.0.1:20171
      ALL_PROXY: socks5h://127.0.0.1:20170
      no_proxy: localhost,127.0.0.1
      NO_PROXY: localhost,127.0.0.1

无法配对机器人

参考: https://openclaw-ai.org/guides/fix-openclaw-docker-eacces-permission-denied

容器内的 node 用户(UID 1000)没有权限读写宿主机挂载进去的文件夹(通常是因为宿主机文件夹属于 root 或其他用户).

出现了 openclaw: Permission denied

fast way:

chown -R 1000:1000 "$HOME/.openclaw"

or add in docker-setup.sh:

after lines:

mkdir -p "$OPENCLAW_CONFIG_DIR"

mkdir -p "$OPENCLAW_WORKSPACE_DIR"

chown -R 1000:1000 "$OPENCLAW_CONFIG_DIR"

复制代码
diff --git a/docker-setup.sh b/docker-setup.sh
index 89b8346a3..089a52b4e 100755
--- a/docker-setup.sh
+++ b/docker-setup.sh
@@ -27,6 +27,8 @@ OPENCLAW_WORKSPACE_DIR="${OPENCLAW_WORKSPACE_DIR:-$HOME/.openclaw/workspace}"
 mkdir -p "$OPENCLAW_CONFIG_DIR"
 mkdir -p "$OPENCLAW_WORKSPACE_DIR"

+chown -R 1000:1000 "$OPENCLAW_CONFIG_DIR"
+
 export OPENCLAW_CONFIG_DIR
 export OPENCLAW_WORKSPACE_DIR
 export OPENCLAW_GATEWAY_PORT="${OPENCLAW_GATEWAY_PORT:-18789}"

参考

知乎 Docker部署Openclaw: https://zhuanlan.zhihu.com/p/2002144306304140149

Github ClawBot安装指南: https://github.com/xianyu110/clawbot

相关推荐
数据知道1 天前
claw-code 源码分析:成本追踪(Cost)与 Hook——企业落地时,计量与策略注入该挂在哪一层?
ai·claude code·claw code
斯普信云原生组1 天前
Prometheus 环境监控虚机 Redis 方案(生产实操版)
运维·docker·容器
喵了几个咪1 天前
如何在 Superset Docker 容器中安装 MySQL 驱动
mysql·docker·容器·superset
工具罗某人1 天前
docker compose部署kafka集群搭建
docker·容器·kafka
marsh02061 天前
31 openclaw微服务架构实践:构建分布式系统
微服务·ai·云原生·架构·编程·技术
楠奕1 天前
CentOS7安装GoldenDB单机搭建及常见报错解决方案
linux·运维·服务器
剑锋所指,所向披靡!1 天前
Linux常用指令(2)
linux·运维·服务器
不愿透露姓名的大鹏1 天前
Oracle归档日志爆满急救指南
linux·数据库·oracle·dba
W.W.H.1 天前
嵌入式常见的面试题1
linux·网络·经验分享·网络协议·tcp/ip
木白CPP1 天前
DMA-Buffer内核驱动API文档
linux