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 窗口