Docker VPS 上的 OpenClaw
釘映象、先冒煙再切流量、2026 秒級回滾

固定標籤 · Compose 紀律 · 冒煙門禁 · 就緒回滾

OpenClaw Docker 生產映象釘扎與回滾 2026

個人運維與小團隊在 VPS 上跑 OpenClaw,常常某天清晨發現 映象已悄悄升級,只因用了 :latest 一夜拉了新 Gateway。本文說明浮動標籤如何破壞可復現性,如何在 Compose 與 Kubernetes 中釘 semver 或 digest,換映象前要備份哪些路徑,如何在低流量視窗做雙例項冒煙,以及一套回滾 shell 形態:回到上一標籤並複檢 health 與通道。可配合閱讀可持續升級VPS Docker 安裝Exit 137 與 WASM 視窗Gateway 排障清單

01

為何生產 OpenClaw 不該依賴 :latest

浮動標籤掩蓋三類漂移:Skill 依賴的 Gateway 二進位制介面、回撥依賴的外掛或通道 schema、Node 周圍的容器基礎庫。拉取「永遠最新」會把事故變成猜謎:兩臺主機在不同時間點很難拉到完全一致的分層,覆盤對不上,也會讓接入 IM 或 Webhook 的同事失去信任。

層面:latest 下會動什麼最先體感
Gateway APICLI 引數、配置 schema、Control UI 路由計劃外重啟後 Skill 校驗失敗
通道Webhook 握手時序、Discord intents 預設訊息靜默丟棄直到有人看到積壓
執行時棧Node 補丁級別、libc 相容性首輪 WASM 或原生依賴拉高 CPU 或 OOM

生產級 OpenClaw 映象應能用同一串字元命名兩次:Git 裡一次,主機上再一次—— digest 可選但必須 consciously 選擇。

說明:叢集級零停機遷移見災備與零停機升級;本文面向單機或雙 Compose 棧的 VPS。

02

釘扎策略:Compose、Kubernetes 與變更記錄紀律

每個環境只選一種不可變引用:要麼先在預釋出驗證過的發行標籤(v2026.4.2),要麼需要跨區域位元組級一致時用 digest。把該字串寫在 compose 旁,並在工單裡映象一份。

yaml
services:
  openclaw:
    image: ghcr.io/openclaw/openclaw:v2026.4.2
    pull_policy: missing
  • Compose:避免隱式 latest 拉取;需要自動化絕不改寫執行中容器時設 pull_policy: missing 或釘 digest。
  • Kubernetes:容器映象使用同一標籤或 digest;配合有意義的 rollout 註解,令 kubectl 歷史能對齊變更審批。
  • 記錄:每次 bump 一行 CHANGELOG:標籤、原因、測試人、冒煙筆記連結。

注意:只改 openclaw.json 而映象在背後悄悄前進,仍屬失控升級——同一工單裡同時釘配置 revision 與映象引用。

03

升級前清單:路徑、工作區、通道與 Skill 冒煙

在任何 docker compose pull 之前先凍結範圍,回滾才知道「好」的定義。

  1. 01

    配置卷:快照 ~/.openclaw 或掛載路徑;備份工具支援時對檔案列表做校驗和。

  2. 02

    工作區:記下 Skill 目錄與 compose 透過 env_file 對映到容器外的金鑰。

  3. 03

    通道:匯出 Webhook URL,確認維護視窗內入站可達性與公告一致。

  4. 04

    冒煙列表:選兩個 Skill 與一對通道收發,切生產流量前必須透過。

  5. 05

    資源:確認首輪編譯峰值記憶體餘量,參見Exit 137 長文

04

藍綠或雙例項冒煙:低流量視窗與日誌訊號

把候選映象作為第二套 project 名或非生產埠上的備用 compose 執行,冒煙通過後再切流量。

訊號看哪裡透過標準
Gateway healthcurl 迴環 health連續探測 HTTP 200 穩定
通道狀態Gateway 日誌或 CLI無重連風暴;回撥已確認
Skill 審計Skill runner 輸出相比預釋出預期無新增拒絕規則
Control UI瀏覽器對固定來源反代規則下無非 loopback 誤配

晉升視窗保持簡短;長時間並行會放大 Gateway 所觸資料庫或佇列之間的漂移。

05

回滾 Runbook:還原標籤、重建、驗證

把回滾當作排練過的指令碼而非臨場發揮。把映象引用換回上一個已知良好標籤,顯式 pull,重建容器,再在對外宣佈恢復前證明 health。

bash
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
  • 通道覆盤:回滾後每個聯結器發探測訊息,與事故前日誌比對 ID。
  • 工單欄位:記錄上一標籤、嘗試標籤、時間窗、是否動用備份恢復。

若 VPS 棧旁還有依賴 macOS 的重負載,把 Gateway 可用性與編譯池爭論拆開,回滾討論才不會擴散。需要比家用裝置邊界更清楚的專用遠端 Mac 容量時,可對照租賃價格頁訂購頁,與本篇 Gateway 紀律一併評審。

FAQ

FAQ

可持續升級側重通道、節奏與跨環境備份總則;本文收窄到Docker 映象釘扎、預釋出冒煙與 VPS 運維向回滾命令。

多數團隊用已驗證的 semver 標籤;監管或多區位元組一致時再上digest。無論哪種,Git 裡 compose 旁要寫死引用。

首啟與規格見 OpenClaw v2026.4 VPS Docker 安裝;升級疊首輪編譯記憶體峰值見 Exit 137 與 WASM 視窗