[全流程详细教程]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

相关推荐
Lsir10110_6 小时前
【Linux】进程信号(下半)
linux·运维·服务器
宇宙帅猴6 小时前
GitHub 私有仓库认证完整指南:告别密码错误,使用 PAT 令牌
github
酉鬼女又兒6 小时前
零基础入门Linux指南:每天一个Linux命令_pwd
linux·运维·服务器
云飞云共享云桌面6 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
zl_dfq6 小时前
Linux 之 【多线程】(pthread_xxx、轻量级进程、原生线程库、线程ID、__thread、线程栈、线程与信号、线程与程序替换)
linux
choke2336 小时前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器
星火s漫天7 小时前
第一篇: 使用Docker部署flask项目(Flask + DB 容器化)
数据库·docker·flask
AZ996ZA7 小时前
自学linux的第二十一天【DHCP 服务从入门到实战】
linux·运维·服务器·php
_OP_CHEN7 小时前
【Linux系统编程】(二十八)深入 ELF 文件原理:从目标文件到程序加载的完整揭秘
linux·操作系统·编译·c/c++·目标文件·elf文件