固定標籤 · Compose 紀律 · 冒煙門禁 · 就緒回滾
個人運維與小團隊在 VPS 上跑 OpenClaw,常常某天清晨發現 映象已悄悄升級,只因用了 :latest 一夜拉了新 Gateway。本文說明浮動標籤如何破壞可復現性,如何在 Compose 與 Kubernetes 中釘 semver 或 digest,換映象前要備份哪些路徑,如何在低流量視窗做雙例項冒煙,以及一套回滾 shell 形態:回到上一標籤並複檢 health 與通道。可配合閱讀可持續升級、VPS Docker 安裝、Exit 137 與 WASM 視窗、Gateway 排障清單。
:latest浮動標籤掩蓋三類漂移:Skill 依賴的 Gateway 二進位制介面、回撥依賴的外掛或通道 schema、Node 周圍的容器基礎庫。拉取「永遠最新」會把事故變成猜謎:兩臺主機在不同時間點很難拉到完全一致的分層,覆盤對不上,也會讓接入 IM 或 Webhook 的同事失去信任。
| 層面 | :latest 下會動什麼 | 最先體感 |
|---|---|---|
| Gateway API | CLI 引數、配置 schema、Control UI 路由 | 計劃外重啟後 Skill 校驗失敗 |
| 通道 | Webhook 握手時序、Discord intents 預設 | 訊息靜默丟棄直到有人看到積壓 |
| 執行時棧 | Node 補丁級別、libc 相容性 | 首輪 WASM 或原生依賴拉高 CPU 或 OOM |
生產級 OpenClaw 映象應能用同一串字元命名兩次:Git 裡一次,主機上再一次—— digest 可選但必須 consciously 選擇。
說明:叢集級零停機遷移見災備與零停機升級;本文面向單機或雙 Compose 棧的 VPS。
每個環境只選一種不可變引用:要麼先在預釋出驗證過的發行標籤(v2026.4.2),要麼需要跨區域位元組級一致時用 digest。把該字串寫在 compose 旁,並在工單裡映象一份。
services:
openclaw:
image: ghcr.io/openclaw/openclaw:v2026.4.2
pull_policy: missing
pull_policy: missing 或釘 digest。注意:只改 openclaw.json 而映象在背後悄悄前進,仍屬失控升級——同一工單裡同時釘配置 revision 與映象引用。
在任何 docker compose pull 之前先凍結範圍,回滾才知道「好」的定義。
配置卷:快照 ~/.openclaw 或掛載路徑;備份工具支援時對檔案列表做校驗和。
工作區:記下 Skill 目錄與 compose 透過 env_file 對映到容器外的金鑰。
通道:匯出 Webhook URL,確認維護視窗內入站可達性與公告一致。
冒煙列表:選兩個 Skill 與一對通道收發,切生產流量前必須透過。
資源:確認首輪編譯峰值記憶體餘量,參見Exit 137 長文。
把候選映象作為第二套 project 名或非生產埠上的備用 compose 執行,冒煙通過後再切流量。
| 訊號 | 看哪裡 | 透過標準 |
|---|---|---|
| Gateway health | curl 迴環 health | 連續探測 HTTP 200 穩定 |
| 通道狀態 | Gateway 日誌或 CLI | 無重連風暴;回撥已確認 |
| Skill 審計 | Skill runner 輸出 | 相比預釋出預期無新增拒絕規則 |
| Control UI | 瀏覽器對固定來源 | 反代規則下無非 loopback 誤配 |
晉升視窗保持簡短;長時間並行會放大 Gateway 所觸資料庫或佇列之間的漂移。
把回滾當作排練過的指令碼而非臨場發揮。把映象引用換回上一個已知良好標籤,顯式 pull,重建容器,再在對外宣佈恢復前證明 health。
export OPENCLAW_IMAGE_TAG="v2026.4.1" docker compose pull openclaw docker compose up -d --force-recreate openclaw curl -sf http://127.0.0.1:18789/health
若 VPS 棧旁還有依賴 macOS 的重負載,把 Gateway 可用性與編譯池爭論拆開,回滾討論才不會擴散。需要比家用裝置邊界更清楚的專用遠端 Mac 容量時,可對照租賃價格頁與訂購頁,與本篇 Gateway 紀律一併評審。
可持續升級側重通道、節奏與跨環境備份總則;本文收窄到Docker 映象釘扎、預釋出冒煙與 VPS 運維向回滾命令。
多數團隊用已驗證的 semver 標籤;監管或多區位元組一致時再上digest。無論哪種,Git 裡 compose 旁要寫死引用。
首啟與規格見 OpenClaw v2026.4 VPS Docker 安裝;升級疊首輪編譯記憶體峰值見 Exit 137 與 WASM 視窗。