運用で踏みやすい三つの落とし穴
同一ホストでビルドイメージを過剰並列するとディスクと帯域が拮抗し赤判定が増えます。
package-lock と実取得が食い違うと再現不能な中間失敗が続きます。
ゲートウェイの一八七八九番が衝突すると status JSON が健全でも後段が届きません。
イメージ並列・Git 再試行・空き容量の表
ディスクと出口帯域を前提に、同時イメージ本数・フェッチ退避・中止水位を同時に決めます。
| 方針 | 同時本数 | Git 再試行 | 空き目安 |
|---|---|---|---|
| 保守 | 1 | 最大三回・四秒起点 | 十五G超で開始 |
| 中庸 | 2 | 最大五回・四〜九十秒階段 | 二十五G超 |
| 攻め | 3〜4 | 浅履歴+postBuffer | 四十G超・五G未満で中止 |
Node 二十四と CLI 導入
Node 公式か nvm の install.sh を curl で取り nvm install 24 で固定。npm で openclaw を入れ plist で絶対パスを揃えます。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
nvm install 24 && nvm use 24
npm i -g openclaw@latest
初回のみ arm64 取得に時間、以降はキャッシュで安定します。
builds から CI へ返す手順
builds.sr.ht で Webhook を作り共有秘密をシークレットへ入れ HTTPS 受口へ限定公開します。
プリフェッチで npm cache を温め、lockfile と取得物の差分検査を同一シェルへまとめます。
失敗摘要を末尾数百行に圧縮しビルド番号と短いコミットをキーに付けます。
openclaw config validate の後に gateway status を JSON 保存し doctor を連鎖して終了コードを記録します。
curl で builds ログへ追記または API へ返し、失敗時は四〜九十秒退避で最大五回再送します。
validate・status・doctor の連鎖
validate を先に通すと偽陽性が減ります。status JSON はリスナー実効値を残し doctor は権限と一八七八九番衝突を拾います。三つを一枚の CI 要約へ載せ本番入口を静かにできます。
よくある質問
- トークンと Webhook 秘密は分けますか。
- 分けます。署名は共有秘密のみ、API は読み取り限定の別トークン、ログはマスクします。
- TLS 終端で署名が壊れるのはなぜですか。
- プロキシが JSON を整形すると生ボディと不一致になります。上流で検証するか整形を止めます。
- ポート一八七八九が使用中と出ます。
- lsof で PID を特定し PR 用は別 launchd ラベルと使い捨て HOME で衝突を避けます。
- Node 二十二でも動きますか。
- 推奨しません。v2026.5 系は二十四前提の依存が増えます。
- Git の shallow が不安定です。
- 上表の退避に合わせ深さと同時 clone を絞ります。bundle 記事も参照ください。
まとめと次アクション
Webhook で入口を絞り表で並列と再試行と水位を決め OpenClaw の三連ゲートで受入れすると赤判定の原因が読みやすくなります。
- 退避は四〜九十秒の階段で最大五回
- 空き四十G超で攻め、五G未満で中止
- validate→status JSON→doctor の順を固定
ホーム・料金・ヘルプはログイン不要です。隣接読みはCircleCI lockfile 摘要や一覧へどうぞ。