一、文档说明
本文将最近两天围绕 Docker 方式部署 OpenClaw 的安装、配置、问题处理、依赖补齐、技能增强、重复部署方法与后续建议统一整理为一份完整文档,适合存档、交接、复盘和后续持续维护。
这个文档是openclaw小龙虾整理通过qq发我的

二、环境与基础信息
-
部署方式:Docker / Docker Compose
-
容器系统:Debian GNU/Linux 12 (bookworm)
-
OpenClaw 版本:2026.3.7
-
当前主模型:codexzh/gpt-5.4
-
Gateway 地址:http://localhost:18789/
-
工作区路径:/home/node/.openclaw/workspace
-
配置文件路径:/home/node/.openclaw/openclaw.json
三、总体目标
本次折腾的目标并不是单纯把 OpenClaw 跑起来,而是实现以下几件事:
-
在 Docker 环境中稳定运行 OpenClaw
-
确认主模型可正常对话和执行常见任务
-
补齐一批高价值基础依赖,提升 skills 可用性
-
形成可重复部署的方法,避免以后重建容器重新踩坑
-
整理出文档,方便后续长期使用
四、当前已确认的关键配置
根据本次过程,当前环境中已明确的重要配置思路包括:
-
模型提供方:codexzh
-
baseUrl:https://api.codexzh.com/v1
-
默认模型:codexzh/gpt-5.4
-
imageModel:codexzh/gpt-5.4
-
Gateway 端口:18789
-
Gateway 模式:local
-
Gateway 认证方式:token
-
Gateway bind:loopback
-
workspace:/home/node/.openclaw/workspace
-
tools.profile:coding
五、部署与排障过程回顾
(一)初始状态检查
最开始在容器内执行 openclaw skills check,结果显示:
-
Total: 51
-
Eligible: 3
-
可用 skills 仅有 healthcheck、skill-creator、weather
这说明:
-
OpenClaw 主体已经能运行
-
但当前镜像属于比较干净的最小依赖环境
-
大量 skill 还缺少命令行依赖、配置项或外部 API key
(二)确认容器环境
进一步确认后,环境具备以下条件:
-
操作系统是 Debian 12
-
容器内可用 apt-get
-
容器内可用 npm
这意味着后续可以直接通过 Debian 包管理器和 npm 安装所需工具。
(三)安装基础依赖
为了提升 skills 的可用性,先后补充了这一批高价值依赖:
-
jq
-
ripgrep
-
ffmpeg
-
tmux
-
git
-
curl
-
python3
-
python3-pip
-
python3-venv
-
python3-full
-
gh
-
unzip
-
zip
-
ca-certificates
-
procps
-
less
-
netcat-openbsd
-
dnsutils
-
pipx
-
clawhub(npm 全局安装)
-
uv
(四)apt-get 权限问题
第一次执行 apt-get 时出现权限错误,报错集中在:
- /var/lib/apt/lists/partial 权限不足
原因是:
- 当前进入容器的用户并不是 root
解决办法:
-
使用 docker exec -u 0 -it 容器名 sh 进入容器
-
再执行 apt-get update 和 apt-get install
这个坑说明:Docker 里很多问题并不是包本身有问题,而是用户权限不对。
(五)uv 安装问题
最初尝试通过 pip3 install uv 安装 uv,但在 Debian 12 环境下失败。
原因:
-
Debian 12 启用了 PEP 668 externally-managed-environment 保护
-
不允许直接往系统 Python 环境中用 pip3 随便写包
最终采用的正确方案:
-
先安装 pipx
-
执行 pipx install uv
-
再把 uv 和 uvx 链接到 /usr/local/bin
对应命令思路:
-
pipx install uv
-
ln -sf /home/node/.local/bin/uv /usr/local/bin/uv
-
ln -sf /home/node/.local/bin/uvx /usr/local/bin/uvx
最终验证结果:
-
uv 版本为 0.10.9
-
which uv 能正确输出 /usr/local/bin/uv
(六)skills 可用性提升结果
在补齐依赖后,skills 从最初的 3 个可用提升到 9 个可用。
最终确认可用的技能包括:
-
clawhub
-
gh-issues
-
github
-
healthcheck
-
session-logs
-
skill-creator
-
tmux
-
video-frames
-
weather
这说明当前环境已经具备较强的:
-
日志分析能力
-
GitHub 辅助能力
-
视频帧处理能力
-
终端与 tmux 协助能力
-
健康检查与文档辅助能力
(七)为什么 openclaw.json 没怎么变化
后续查看 openclaw.json 时,发现其中关于 skills 的条目并不多。
这是正常现象,原因是:
-
apt、npm、pipx 安装的是环境依赖和二进制
-
OpenClaw 在执行 skills check 时会动态扫描当前环境
-
它不会把"检测到某个二进制存在"自动回写到 openclaw.json
因此:
-
安装依赖成功,不等于配置文件会自动新增记录
-
openclaw.json 更像"显式配置文件",用于填 API key、env、enabled、额外参数
(八)ClawHub 相关情况
在使用 clawhub search 搜索技能时,遇到过两类问题:
-
Rate limit exceeded
-
InternalServerError
这说明:
-
公开搜索接口可能存在限流
-
服务端也可能存在偶发异常
结论:
-
不适合短时间高频连续搜索
-
后续应降低频率,或等服务恢复后再查
-
也可以直接使用已知 skill 名称,或者优先围绕本地工具型能力建设
(九)关于主模型与特定 skill 的区别
当前主模型 codexzh/gpt-5.4 是正常可用的,这就解释了为什么聊天、代码协助、文档整理都能完成。
要区分两件事:
-
主模型能不能用
-
某个特定 skill 能不能用
很多特定 skill 还会额外依赖:
-
某个 CLI
-
某个平台 token
-
某个第三方 API key
所以:
-
主模型可用,并不代表所有 skill 都自动可用
-
没有 OpenAI 或 Gemini key,也不会影响当前主模型已经正常工作
(十)为什么当前不优先走 OpenAI / Gemini 路线
从实际需求和环境出发,当前没有把重点放在 OPENAI_API_KEY、GEMINI_API_KEY 上,主要原因有:
-
当前主模型 codexzh/gpt-5.4 已经可用
-
中国大陆网络环境下,OpenAI / Gemini 注册、支付、连通性都更折腾
-
当前更划算的路线是提升本地工具链与稳定运维能力
所以当前阶段的策略是:
-
先把本地依赖补齐
-
先提升 Docker、日志、GitHub、终端、文档能力
-
以后再按需考虑外部 API 型 skill
(十一)Control UI 与 token / 设备状态问题
过程中还分析过一个现象:重启后网页侧像是需要重新 token 或重新配对设备。
最后更合理的判断是:
-
单独重启 Gateway 通常不会造成大问题
-
真正容易出问题的是服务器和浏览器同时关闭后再重新进入
-
刷新网页本身一般不会导致异常
这更像是:
-
冷启动后的浏览器站点数据、设备身份或本地状态变化
-
不完全是网关本身的问题
建议:
-
尽量固定从 http://localhost:18789/ 访问
-
遇到 UI 状态异常,优先考虑浏览器侧缓存和设备状态,而不是直接怀疑模型配置损坏
(十二)QQ 插件安装问题
后续尝试安装 QQ 插件 @tencent-connect/openclaw-qqbot@latest。
安装过程里出现了两类值得注意的信息:
-
OpenClaw 对插件源码能力给出了安全风险提示,例如 child_process、环境变量访问和网络发送
-
真正阻断安装的直接原因是 npm 缓存目录权限异常
具体表现为:
-
/home/node/.npm 中存在 root-owned 文件
-
导致 npm 安装时触发 EACCES
处理建议:
-
修正 npm 缓存目录属主
-
再重新尝试安装
这个过程也说明:
-
第三方插件安装前要先看风险提示
-
失败时要分清"安全提示"和"真正的报错原因"
六、可重复部署标准方案
(一)总原则
不要依赖"进容器后手工一条条装包"的方式长期维护环境。
更好的方案是:
-
把已验证有效的依赖固化到自定义镜像
-
把关键配置固化到 openclaw.json
-
把工作区说明文档保留好
这样以后不管是重建容器、换机器还是迁移环境,都能快速复原。
(二)建议保留的关键文件
-
/home/node/.openclaw/openclaw.json
-
/home/node/.openclaw/workspace/Dockerfile.openclaw-custom
-
/home/node/.openclaw/workspace/OPENCLAW-DAILY.md
-
/home/node/.openclaw/workspace/OPENCLAW-USE-CASES.md
-
当前这份总文档
(三)自定义镜像内容建议
自定义镜像里至少建议包含:
-
jq
-
ripgrep
-
ffmpeg
-
tmux
-
git
-
curl
-
python3
-
python3-pip
-
python3-venv
-
python3-full
-
gh
-
unzip
-
zip
-
ca-certificates
-
procps
-
less
-
netcat-openbsd
-
dnsutils
-
pipx
-
clawhub
-
uv
(四)推荐部署流程
每次重建或迁移时,推荐按以下顺序执行:
-
准备 Dockerfile.openclaw-custom
-
构建自定义镜像
-
准备或恢复 openclaw.json
-
启动 docker compose
-
访问 Control UI
-
执行 openclaw skills check
-
验证主模型对话
-
验证至少一个已知可用 skill
(五)如果必须临时进入容器补依赖
临时方案可以这样做:
-
用 docker exec -u 0 -it 进入容器
-
执行 apt-get update
-
执行 apt-get install 安装基础工具
-
执行 npm i -g clawhub
-
使用 pipx install uv
-
建立 uv / uvx 的软链接
-
用 which 和 openclaw skills check 验证
但要明确:
-
这是应急方法
-
容器重建后可能丢失
-
最终还是应该写回 Dockerfile
七、推荐的验证命令
部署完成后,推荐固定执行以下检查:
-
docker compose ps
-
docker logs 网关容器
-
openclaw gateway status
-
openclaw status
-
openclaw skills check
-
which jq
-
which rg
-
which ffmpeg
-
which tmux
-
which gh
-
which clawhub
-
which uv
-
uv --version
八、常见问题与对应处理
(一)apt-get 报权限错误
原因:当前不是 root
处理:docker exec -u 0 -it 进入容器
(二)pip3 install uv 失败
原因:Debian 12 的 PEP 668 保护
处理:改用 pipx install uv
(三)uv 安装成功但找不到命令
原因:安装路径不在 PATH
处理:建立到 /usr/local/bin 的软链接
(四)openclaw.json 没自动新增 skills
原因:依赖安装与配置文件写入是两回事
处理:只在需要显式配置时手动编辑 openclaw.json
(五)clawhub search 被限流
原因:搜索过频或公共出口额度受限
处理:降低查询频率,稍后再试
(六)clawhub search 服务端异常
原因:服务端偶发问题
处理:等待恢复,不要连续猛试
(七)插件安装遇到 EACCES
原因:npm 缓存目录属主不正确
处理:修复 /home/node/.npm 权限后重试
九、当前环境适合怎么用
当前这套环境已经不只是"能聊天",更适合做这些事:
-
Docker 与 Linux 运维副手
-
日志排障和问题归纳
-
GitHub issue / PR 辅助
-
配置文件整理与文档生成
-
tmux 终端协助
-
视频帧提取与基础媒体处理
-
健康检查与持续维护
十、当前阶段最合理的策略
综合本次过程,当前最合理的使用与维护策略是:
-
先以稳定为主,不追求一次性点亮全部 skill
-
优先使用已经验证可用的 9 个核心 skill
-
优先强化本地工具型能力,而不是马上堆外部 API 集成
-
对第三方插件保持谨慎,先看风险提示再装
-
把当前有效经验沉淀为 Dockerfile、配置文件和文档
十一、当前已产出的配套文件
本次过程中已经整理出的配套文件包括:
-
OpenClaw_Docker_安装与问题处理纪要.docx
-
OpenClaw_Docker_可重复部署操作手册.docx
-
Dockerfile.openclaw-custom
-
当前这份 OpenClaw_Docker_完整部署与排障总文档.docx
十二、结论
截至目前,可以认为这套 OpenClaw Docker 环境已经达到:
-
主体可稳定运行
-
主模型可正常工作
-
一批高价值 skills 已完成可用化
-
排障路径已经清楚
-
重复部署方法已经明确
-
后续扩展方向也已经清晰
如果后续继续增强,建议仍然保持一个原则:
先固化已经验证有效的东西,再扩展新能力;先重稳定与复用,再追求功能数量。
整理时间:2026-03-11 00:58 UTC