如果你已经能用 npm 全局或 Docker / GHCR 跑起 OpenClaw Gateway,却在「要不要追 latest」「stable / beta / dev 切了会不会把配对打爆」「CLI 与镜像 tag 谁说了算」之间反复横跳,本文给你一套可写进变更单的版本策略:先冻结单一真源(npm 或 compose),再用钉 tag / digest + 六步回滚矩阵把升级从赌博变成运维。与站内三平台安装总览、GHCR 首启与 Control UI、升级与 .openclaw 迁移分工;常驻拓扑可并联SSH 转发六国独占 Gateway。
latest 当成「永远安全」:注册表上的浮动标签会随上游发布漂移;两台机器「都是 latest」但 digest 不同,排障时你会看到幽灵差异。openclaw --version 新、容器里二进制旧(或相反),症状常表现为 CLI 子命令不存在或参数不识别,却被误报成网络 1006。docker pull 双轨:一边改 OPENCLAW_IMAGE 一边本地缓存残留旧层,表现为「我明明改了 env 为什么还是旧 digest」。发行通道与镜像钉选的本质,是把可观测的版本三元组(CLI 版本、Gateway 镜像 digest、配置目录校验和)固定下来,让「升级失败」可以被同一套回滚矩阵吸收,而不是变成口述传说。与只做功能介绍的科普文不同,本篇刻意与站内已有安装、首启、迁移类文章边界互斥:这里不写从零安装,只写如何在已跑通的前提下管理变更面。
当你把 Gateway 放在小内存 VPS或与桌面会话绑定的个人笔记本上长期追新时,还会叠加 cgroup 限额、睡眠合盖、磁盘水位等噪声;这些噪声会伪装成「通道 bug」。因此下文在验证阶梯里强制插入 openclaw doctor 与资源门槛检查,与 安装后 doctor 分诊 对齐字段,而不是重复其全部分症状表。
| 维度 | npm 全局路径(宿主机 CLI) | Docker / GHCR 路径(Gateway 容器) |
|---|---|---|
| 版本真源 | npm dist-tag(stable/beta/dev 等语义由上游定义)+ lockfile/CI 缓存策略 | OPENCLAW_IMAGE 镜像引用;可钉 :tag 或 @sha256: digest |
| 追新成本 | 低摩擦,但易受全局 Node、代理、证书、PATH 影响 | 镜像层可复现;代价是 compose 与卷权限要设计好 |
| 回滚抓手 | 上一版 npm 包号 + 备份的 .openclaw;必要时卸载重装 |
改镜像引用 + compose up -d;数据卷保留则配对状态可延续(视版本说明) |
| 典型误用 | 生产机直接 npm i -g 无变更单、无备份 |
多份 compose 分叉却共用同一命名卷,回滚 A 环境踩到 B 的卷 |
| 与远程常驻 Mac | 适合开发机随写随试;生产建议仍钉版 | 适合独占机 7×24;与 SSH 转发或尾网收口组合时更要钉 digest |
三平台安装总览回答「从 0 到能跑」;docker-setup + GHCR + Control UI回答「官方容器路径第一次怎么起」;升级与迁移清单回答「.openclaw 备份、Gateway 切换、双路径回滚顺序」。本篇只补发行通道语义 + 钉选策略 + npm/镜像矩阵这一层:读完你应能写出一张「从当前稳定三元组到候选三元组,再回退」的工单,而不是再学一遍点击向导。
若你当前痛点是 1006/1008、TOKEN 双源、子代理配对,请优先跳转 配对与 Token 冲突 Runbook;本篇仅在「升级后配对是否需重做」层面给决策门槛,避免与专文重复堆症状。
注意:stable / beta / dev 的具体语义、dist-tag 名称与镜像 tag 列表会随上游发布演进;下文的命令占位符(如 openclaw update、OPENCLAW_IMAGE)代表能力类别。落地前务必以你锁定的版本所附官方文档替换为准确子命令与字段名。
openclaw --version(或等价)、docker image inspect 的 digest、compose 文件 git SHA、.openclaw 目录校验和;四者缺一则不允许在生产窗口动刀。openclaw update(或文档指定等价流程)并打印日志到 CI;Docker 路径先 docker compose pull 再 up -d,禁止手工 pull 却不 up 造成半升级。openclaw gateway status →(若版本提供)probe → 最小非破坏性对话或健康检查 → openclaw doctor;任一步失败进入回滚而非「多试几次」。OPENCLAW_IMAGE 指回上一已知良好 digest;compose up -d 强制重建;确认卷仍挂载在同一逻辑路径;重复验证阶梯并记录新 digest。# 变更前「三元组」登记(示例字段名按你们工单模板调整)
openclaw --version 2>/dev/null || true
docker compose config | sed -n '1,120p'
docker inspect "$(docker compose images -q openclaw-gateway 2>/dev/null | head -n1)" --format '{{.RepoDigests}}' 2>/dev/null || true
# 建议:把 OPENCLAW_IMAGE 从浮动 tag 迁到 digest 的写法(示意)
# export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw@sha256:<已知良好 digest>"
# docker compose pull && docker compose up -d
latest)对应的 digest 在周内的变更次数;>1 次即建议改为钉 digest 或 semver tag,并把原因记在发布说明。个人机追新的隐性成本是睡眠唤醒、VPN 切换、磁盘碎片与钥匙串上下文叠加在 Gateway 之上,排障时你会误以为是通道缺陷;生产机浮动 latest 的隐性成本是不可审计的 digest 漂移与多机不一致,最终把「版本问题」伪装成「模型/网络问题」。当你需要7×24、可审计、与团队变更节奏一致的 Gateway,而把笔记本只当作终端时,把权威 Gateway 落在独占 Apple Silicon 远程 Mac、用文档化 SSH 转发或尾网收口,往往比在个人设备上与系统电源策略搏斗更省总拥有成本——MACCOME在六国提供 Mac mini(M4 / M4 Pro)与弹性租期,可与本站多篇 OpenClaw Runbook 串联设计;公开档位请先对照多地区节点与租期指南再定拓扑。
交付物建议包含:默认通道、允许的临时通道窗口、禁止项(例如生产禁止无 digest 的 latest)、验证阶梯输出样例、回滚分支 A/B 的负责人与超时。任何不能在第二台机器上复现的升级步骤,都应视为文档未完成。与 Docker 生产 Runbook 同读时,请把镜像策略与日志留存策略放在同一目录,避免「升级了但没人知道当时拉的是哪一层」。