如何解决Docker部署ClawBot时Openclaw权限被拒绝的问题?

摘要:Deploy Clone Repo Github Openclaw Repo: https:github.comopenclawopenclaw.git git clone https:github.comopenclawo
Deploy Clone Repo Github Openclaw Repo: https://github.com/openclaw/openclaw.git 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 该脚本会自动完成: 构建 Docker 镜像(IMAGE_NAME="${OPENCLAW_IMAGE:-openclaw:local}") 运行交互式 onboarding 向导 生成 Gateway Token 并写入 .env 启动网关服务 ./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配置代理, 但是在容器中, 我一直没有配起来 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