2026年 リモートMacノードのOpenClaw:Dockerか裸機か?Composeヘルスプローブ、永続ボリューム、再現可能なエラーFAQ
リモートMac上でOpenClawを自動化するチームは、コンテナ分離と裸機(ネイティブ)の単純さのどちらを取るかで運用コストが変わります。本稿では意思決定マトリクス、コピペ可能なDocker Composeヘルスパターン、ボリュームのトレードオフ、5ステップの展開、プローブやマウント失敗の再現手順付きFAQをまとめます。
はじめに:同一フォーク、二つの運用モデル
論点は「Dockerはモダンで裸機は古い」ではありません。イメージ単位の再現性と高速ロールバックを取るか、UIフロー・署名・周辺機器へのmacOS直結を取るかです。リモートMacは遅延と無人保守が前提のため、どちらを選んでも観測可能なヘルスと永続状態が無いと、オンコール時間がコンテナの節約を帳消しにします。
マルチリージョンのゲートウェイ設計は2026年 OpenClaw 安全配備実践:ZoneMac多地域ノードを活用した高可用・低遅延AIエージェントゲートウェイの構築と併読すると前提が揃います。全プラットフォームのインストールベースラインは2026年 OpenClaw 完全インストールガイド:Mac / Windows / Linux 全プラットフォーム展開チュートリアルを参照してください。
1. リモートMacでつまずく3つの痛点
- ヘルスチェックがデフォルトでは嘘をつく。
docker compose psの行が緑でも、実ゲートウェイの準備完了シグナルとプローブが一致していなければ、オーケストレータも人も安定していると誤認し、レンタルノードのコールドブート後にキューだけが滞留します。 - ボリューム選択が監査と復旧を変える。 バインドマウントはフォレンジックには有利ですが、macOS側のパス変更・パーミッション・誤った
chmodに弱いです。ネームドボリュームはパスのもろさを減らしますがバックアップ設計が別途必要で、どちらもリストア訓練の文書化は必須です。 - 隠れコスト:VirtioFSとファイル監視。 Docker Desktopのファイル共有越しに同期が重いと、ネイティブディスクに比べCPUと遅延が増えます。OpenClawのワークロードがI/O多めなら、紙の上の「常にDocker」より裸機やマウント戦略の見直しが勝つことがあります。
2. Docker対裸機の意思決定マトリクス
フリート標準化の前に使ってください。スコアは方向性でありベンチマークではありません。署名とUIの比率が最終判断を支配します。
| 観点 | Docker/Compose | 裸機(ネイティブ) |
|---|---|---|
| ロールバック速度 | 強い:イメージダイジェスト固定とタグ差し替え | VMスナップショットや段階ディレクトリが無いと弱め |
| UI/画面共有との近接 | 配管が増えがち。ホストツールが依然必要なことも | 強い:ネイティブセッションと権限 |
| 可観測性 | Composeヘルス+コンテナログ。チューニング要 | launchd+Unified Logging。Mac管理者に馴染みやすい |
| ディスクI/O偏重エージェント | VirtioFS/バインドマウントのオーバーヘッドに注意 | Apple Siliconではジッタが通常より小さめになりやすい |
| マルチスタック分離 | プロジェクト単位のネットワークとシークレットに強い | ユーザー・パス・MDM運用に依存しやすい |
3. 五つのステップ:Compose・ヘルス・ボリューム・検証
- ステートフルなパスを明示する。 設定、クレデンシャル(可能ならシークレットまたは厳格なパーミッションのenvファイル)、ログ、エージェント作業用をネームドボリュームまたは自前の単一ホストディレクトリにマップし、永続データに
/tmpを使わないでください。 - 現実に合うhealthcheckを足す。 ポートとパスは環境に合わせて調整してください:
healthcheck: test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:8787/health || exit 1"] interval: 30s timeout: 5s retries: 3 start_period: 60s
イメージにcurlが無い場合は同梱バイナリを使うか派生イメージで追加し、実行できないプローブをコピペしないでください。 - livenessとreadinessを混同しない。 livenessはデッドロック時のみ再起動、readinessはロードバランサ向けです。単一ノードのリモートMacでは混同すると長いマイグレーション中に再起動ループになりがちなので、
retriesを絞る前にstart_periodを延ばします。 - 再現用アーティファクトを残す。 成功した
docker compose up -dの後にdocker compose ps、サービスへのdocker inspectを実行し、composeファイルとピン留めしたイメージダイジェストをgitに保存します。 - 裸機の対照実験を行う。 同一OpenClawバージョンをネイティブインストールし、同じヘルスURLまたはCLIチェックでコールドスタート秒数・アイドルCPU・最重自動化ジョブ時のピークを比較します。オペレーションはDockerが勝ち、遅延は裸機が勝つなら、ゲートウェイはコンテナ・重いUIワーカーはホスト、のハイブリッドも現実的です。
4. 引用しやすいパラメータ
- ヘルスプローブの周期: 出発点として
interval: 30s、timeout: 5s、retries: 3がよく使われます。ゲートウェイのウォームアップ実測後に調整してください。 - コールドスタート猶予:
start_period: 60s(40〜120秒のレンジ)で、初回起動時のNodeやツール初期化中に誤ってunhealthyにならないようにします。 - Mac mini M系のアイドル電力: 軽い自動化では壁抜き数ワット程度に収まることが多く、24/7でDockerのオーバーヘッドとホスト常駐サービスを比較するときの指標になります。
5. 再現可能なエラーFAQ
デプロイ直後にComposeがunhealthyと出る
再現: スタック起動後10秒でdocker compose ps。対処: start_periodを延ばし、イメージ内にヘルスコマンドが存在することを確認し、コンテナ内から同一URLを叩きます(docker compose exec …)。
バインドマウント:Mac上にはファイルがあるのにコンテナ内が空
再現: シンボリックリンクやiCloudのプレースホルダのみのパスをマウント。対処: 実体解決済みパスを使い、ディスク上にファイルが具体化されていることを確認し、Docker Desktopの除外ポリシーに引っかかるルートを避けます。
プロジェクト途中でDockerから裸機へ移行すべきか
再現: 最重いOpenClawワークフローで48時間、両モードのP95ジョブ時間を比較。判断: 裸機が尾部遅延を十分削り、イメージの利点がオンコール時間を上回るならそのノードクラスはネイティブ標準化し、Composeは実験用に残します。
6. このスタックにMac miniが向く理由
OpenClawをコンテナで包んでもネイティブでも、自動化対象に合ったApple Siliconのメモリ帯域、無音に近い熱設計、macOS固有の挙動への適合は欠かせません。Mac miniはアイドル時の消費電力が非常に低く、24/7ゲートウェイ向けに安定しやすく、署名周辺ワークではGatekeeper・SIP・FileVaultが一般的なPCファームよりクリーンな信頼境界を作ります。
ネイティブのUnixツールチェーン、Homebrew、Docker Desktopの第一級サポートにより、本文のどちらのパスも同じ筐体で無理なく検証できます。リージョン展開の前にComposeヘルスとボリューム方針を摩擦最小で試すなら、Mac mini M4は有力なデフォルトです。専用リモート硬件でプレイブックを回す準備ができたらZoneMacのノードを確認してください。
OpenClawをApple Silicon専用キャパシティで
ゲートウェイ・ビルド・自動化のために物理Mac miniを用意。Docker分離もネイティブ運用も、チームの方針で選べます。