固定标签 · 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 窗口。