如果你已經能用 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 同讀時,請把鏡像策略與日誌留存策略放在同一目錄,避免「升級了但沒人知道當時拉的是哪一層」。