目標
永続状態、ビルド時に組み込んだバイナリ、安全な再起動挙動を備えた GCP Compute Engine VM 上で、Docker を使って OpenClaw ゲートウェイを常時稼働させます。 「月額約5〜12ドルで OpenClaw を 24 時間 365 日稼働させたい」場合、これは Google Cloud 上の信頼できるセットアップです。 価格はマシンの種類とリージョンによって異なります。ワークロードに適合する最小の VM を選択し、OOM (メモリ不足) が発生した場合はスケールアップしてください。何をするのか (簡単に)
- GCP プロジェクトを作成し、課金を有効にします
- Compute Engine VM を作成します
- Docker (分離されたアプリランタイム) をインストールします
- Docker で OpenClaw ゲートウェイを起動します
- ホスト上で
~/.openclaw+~/.openclaw/workspaceを永続化します (再起動/再ビルド後も存続します) - SSH トンネル経由でノート PC から Control UI にアクセスします
- ノート PC からの SSH ポートフォワーディング
- ファイアウォールとトークンを自分で管理する場合の直接のポート公開
クイックパス (経験豊富なオペレーター向け)
- GCP プロジェクトの作成 + Compute Engine API の有効化
- Compute Engine VM の作成 (e2-small、Debian 12、20GB)
- VM への SSH 接続
- Docker のインストール
- OpenClaw リポジトリのクローン
- 永続的なホストディレクトリの作成
.envとdocker-compose.ymlの設定- 必要なバイナリの組み込み、ビルド、起動
必要なもの
- GCP アカウント (e2-micro の無料枠の対象)
- インストール済みの gcloud CLI (または Cloud Console を使用)
- ラップトップからの SSH アクセス
- SSH + コピー/ペーストに関する基本的な知識
- 約 20〜30 分
- Docker と Docker Compose
- モデルの認証情報
- オプションのプロバイダ認証情報
- WhatsApp の QR
- Telegram のボットトークン
- Gmail の OAuth
1) gcloud CLI をインストールする (または Console を使う)
オプション A: gcloud CLI (自動化に推奨) https://cloud.google.com/sdk/docs/install からインストールします。 初期化と認証を行います:2) GCP プロジェクトを作成する
CLI:- IAM と管理 (IAM & Admin) > プロジェクトの作成 (Create Project) に移動します。
- 名前を付けて作成します。
- プロジェクトの課金を有効にします。
- API とサービス (APIs & Services) > API を有効にする (Enable APIs) に移動し、「Compute Engine API」を検索して有効化 (Enable) します。
3) VM の作成
マシンの種類:| 種類 | スペック | コスト | 備考 |
|---|---|---|---|
| e2-medium | 2 vCPU, 4GB RAM | 月額約 25 ドル | ローカルの Docker ビルドに最も信頼性がある |
| e2-small | 2 vCPU, 2GB RAM | 月額約 12 ドル | Docker ビルドに推奨される最小要件 |
| e2-micro | 2 vCPU (共有), 1GB RAM | 無料枠の対象 | Docker ビルドの OOM (終了コード 137) で失敗することが多い |
- Compute Engine > VM インスタンス (VM instances) > インスタンスを作成 (Create instance) に移動します。
- 名前 (Name):
openclaw-gateway - リージョン (Region):
us-central1、ゾーン (Zone):us-central1-a - マシンの種類 (Machine type):
e2-small - ブートディスク (Boot disk): Debian 12、20GB
- 作成 (Create) します。
4) VM への SSH 接続
CLI:5) Docker のインストール (VM 上)
6) OpenClaw リポジトリのクローン
7) 永続的なホストディレクトリの作成
Docker コンテナは一時的なものです。 長期的な状態はすべてホスト上に置く必要があります。8) 環境変数の設定
リポジトリのルートに.env を作成します。
9) Docker Compose の設定
docker-compose.yml を作成または更新します。
10) 必要なバイナリをイメージに組み込む (重要)
実行中のコンテナ内にバイナリをインストールするのは罠です。 実行時にインストールされたものはすべて再起動時に失われます。 スキルに必要なすべての外部バイナリは、イメージのビルド時にインストールする必要があります。 以下の例は、3 つの一般的なバイナリのみを示しています:gog(Gmail アクセス用)goplaces(Google プレイス用)wacli(WhatsApp 用)
- Dockerfile の更新
- イメージの再ビルド
- コンテナの再起動
11) ビルドと起動
pnpm install --frozen-lockfile の実行中に Killed / exit code 137 でビルドが失敗した場合、VM はメモリ不足です。 最小で e2-small、またはより信頼性の高い最初のビルドには e2-medium を使用してください。
LAN にバインドする場合 (OPENCLAW_GATEWAY_BIND=lan) は、続行する前に信頼できるブラウザのオリジンを設定します:
18789 を設定したポートに置き換えてください。
バイナリを確認します:
12) ゲートウェイを確認する
13) ノート PC からアクセスする
ゲートウェイのポートを転送する SSH トンネルを作成します。http://127.0.0.1:18789/
新しいトークン化されたダッシュボードのリンクを取得します:
unauthorized または disconnected (1008): pairing required と表示された場合は、ブラウザデバイスを承認します:
何がどこに永続化されるか (信頼できる情報源)
OpenClaw は Docker で実行されますが、Docker は信頼できる情報源ではありません。 すべての長期的な状態は、再起動、再ビルド、およびマシンの再起動後も存続する必要があります。| コンポーネント | 場所 | 永続化メカニズム | 備考 |
|---|---|---|---|
| Gateway 設定 | /home/node/.openclaw/ | ホストのボリュームマウント | openclaw.json、トークンを含む |
| モデル認証プロファイル | /home/node/.openclaw/ | ホストのボリュームマウント | OAuth トークン、API キー |
| スキル設定 | /home/node/.openclaw/skills/ | ホストのボリュームマウント | スキルレベルの状態 |
| エージェントワークスペース | /home/node/.openclaw/workspace/ | ホストのボリュームマウント | コードとエージェントのアーティファクト |
| WhatsApp セッション | /home/node/.openclaw/ | ホストのボリュームマウント | QR ログインを維持します |
| Gmail キーリング | /home/node/.openclaw/ | ホストボリューム + パスワード | GOG_KEYRING_PASSWORD が必要 |
| 外部バイナリ | /usr/local/bin/ | Docker イメージ | ビルド時に組み込む必要があります |
| Node ランタイム | コンテナのファイルシステム | Docker イメージ | イメージのビルドごとに再構築されます |
| OS パッケージ | コンテナのファイルシステム | Docker イメージ | 実行時にインストールしないでください |
| Docker コンテナ | エフェメラル (一時的) | 再起動可能 | 破棄しても安全です |
アップデート
VM 上の OpenClaw を更新するには:トラブルシューティング
SSH connection refused SSH キーの伝播には、VM の作成後 1〜2 分かかる場合があります。待ってから再試行してください。 OS Login の問題 OS Login プロファイルを確認します:pnpm install --frozen-lockfile 中に Killed や exit code 137 で Docker ビルドが失敗した場合、VM は OOM によりキルされました。e2-small (最小要件) または e2-medium (ローカルビルドの信頼性を高めるために推奨) にアップグレードしてください。
サービスアカウント (セキュリティのベストプラクティス)
個人での使用には、デフォルトのユーザーアカウントで問題なく機能します。 自動化または CI/CD パイプラインの場合は、最小限の権限を持つ専用のサービスアカウントを作成します。-
サービスアカウントを作成します:
-
Compute インスタンス管理者ロール (またはより限定的なカスタムロール) を付与します:
次のステップ
- メッセージングチャネルの設定: チャネル
- ローカルデバイスをノードとしてペアリング: ノード
- ゲートウェイの設定: Gateway 設定