Antigravity を使うときは DevContainer で安全に使おう

Antigravity を使うときは DevContainer で安全に使おう

2025.11.30

こんにちは。すらぼです。

先日リリースされた Google Antigravity を使い込んでいます。特に、エージェントが自己判断でコマンドを実行してくれる "Terminal Command Auto Execution" の "Auto モード" のおかげで、イメージがサクサク具現化されていくのは爽快です。

Auto モードの詳細が気になる方は、以下の記事をご覧ください。

https://dev.classmethod.jp/articles/antigravity-terminal-command-auto-execution/

一方で、コマンドを自由に実行されることはリスクにもなりえます。例えば、悪意のあるプロンプトを気が付かないうちに実行されるようなケースが想定されます。
こういったリスクを無くすことは、AIエージェントが判断する以上ゼロにすることは難しいです。一方で、万が一そういった攻撃を受けても影響を最小限にする工夫は可能です。
今回は、その「影響」を減らすための手段として「Dev Containers」を紹介します。

Dev Containers とは

Dev Containers は、名前の通り開発環境自体をコンテナ化する仕組みです。プロジェクトに .devcontainer/devcontainer.json を配置することで、以下のような項目をプロジェクトメンバーにも簡単に共有できます。

  • 開発環境に利用するコンテナのベースイメージ
  • コンテナの初期設定コマンド(apt-get installpnpm install など)

Dev Containers 機能を使うと、エディタで開くターミナル、拡張機能のインストール先、エージェントが実行するコマンドの実行環境もすべてコンテナ内に閉じる ようになります。マウントされるファイルも、プロジェクトのフォルダのみが自動でマウントされるため、ホストマシンのファイルから隔離できます。
つまり、 Antigravity の動作環境をホストマシンから完全に隔離 できます。これにより、悪意のあるパッケージをインストールしても影響をコンテナ内に止めることができ、ホストマシンのファイルなどには影響が出ないように設定できます。

これが、Antigravity で Dev Containers を使う最大の理由と考えています。

また、jsonファイルで開発環境を共有できるため、チーム間での環境統一を行うことができ、微妙にバージョンが異なったり環境構築がうまくいかなかったりすることを防ぐことにも繋がります。

このように、セキュリティだけでなくチーム開発でもメリットが大きいため、個人・チーム問わず利用することをお勧めします。

Antigravity での設定方法

Antigravity では、Dev Containers が標準機能として搭載されおり、拡張機能のインストールなしで利用できます。(広く普及している VS Code では拡張機能のインストールが必要でした。)しかし、機能については VS Code 版に比べると不足する部分があり、設定ファイルは自分で記述する必要があります。

そのため、まず私が作ったテンプレートを紹介します。後ほど設定値についても紹介するので、カスタマイズいただければと思います。

テンプレートの作成

まず、 Antigravity のプロジェクトを通常の方法で開きます。
そして、このファイルをプロジェクトの .devcontainer/devcontainer.json に配置します。

少しだけ解説すると、このテンプレートは、Node.js v22 のコンテナをベースイメージとし、 features で terraform を使えるようにしています。また、 postCreateCommand で Antigravity の強みであるブラウザ操作に必要な Chromium もインストールしています。

.devcontainer/devcontainer.json
{
    "name": "Node & Terraform",
    "image": "mcr.microsoft.com/devcontainers/javascript-node:22",
    "features": {
        "ghcr.io/devcontainers/features/terraform:1": {}
    },
    "postCreateCommand": "sudo apt-get update && sudo apt-get install -y chromium"
}

コンテナで開く

ファイルの作成が完了したら、実際にコンテナ環境を立ち上げていきます。

まず、Antigravity 上で command + shift + P を押してコマンドパレットを開きます。
その後、 Dev Containers: Reopen in Container コマンドを選択します。スクリーンショットのように reopen in container と入力すると補完が効いてくれます。

CleanShot 2025-11-30 at 16.34.51.png

設定はこれだけです。これで、ホスト環境とは切り離されたコンテナ環境で開発を行えるようになります。
注意点として、拡張機能はコンテナごとにインストールが必要になります。必要な拡張機能はストアから別途インストールしてください。

テンプレートのカスタマイズ方法

では、テンプレートの調整方法を紹介します。

ベースイメージ(言語)の選択

ベースイメージは Node.js 以外にも Python や Go など様々な言語のイメージが用意されています。
以下のストアから Development Container と検索すると、今回使用したものと同様のイメージを検索できます。

https://mcr.microsoft.com/en-us/catalog?search=Development Container

features 機能

features によって、必要なツールをコンテナにインストールできます。
terraform 以外にも features が多数あり、以下のページから確認できます。

https://github.com/orgs/devcontainers/packages?repo_name=features

postCreateCommand

通常のコンテナでは RUN を使用しているコマンドをここで実行できます。
feature に存在しないツールのインストールや、 npm install などのセットアップ処理をここで実行することができます。

postCreateCommand 以外にも postStartCommand のようなフックを使用して npm start を起動時に毎回実行するような設定も可能です。

その他のフックは以下を参照ください。

https://containers.dev/implementors/json_reference/#lifecycle-scripts

VS Code との違い

VS Code で使用できていた機能は一部使用できないものがあります。拡張機能ではなく組み込み機能になったことで、一部差異が生じているようです。

customizations は現時点で使用できない

customizations によるプラグインのインストールは、記載しても効果がありません。そのため、Antigravity の Dev Containers ではプラグインは手動でインストールしていく必要があります。

Rebuild Container が現時点では無い

devcontainer.json を書き換えた後、変更を反映するにはコンテナをリビルドする必要があります。ただ、現時点ではコンテナをリビルドするコマンドは Antigravity 自体には搭載されていません。

そのため、以下のような手順を踏む必要があります。

  1. 起動中のコンテナを停止・削除する。
    • docker rm や GUI上からの削除
  2. Antigravity 上で Dev Containers: Reopen Folder Locally を実行し、ローカルで開き直す。
  3. 再度 Dev Containers: Reopen in Container でコンテナで開き直す。

少し不便ではありますが、一度セットアップさえ済めば完了する部分でもあるので対応を待つのが良いでしょう。

終わりに

以上、 Antigravity での Dev Containers について簡単ですが紹介していきました。
ホストで実行するよりも多少の手間がかかりますが、筆者はコマンド実行を AI エージェントに任せることに強い魅力を感じているため、この手間で安全に使えると考えると全然苦になりません。

この記事が、同じような方の悩みになれば幸いです。
以上、すらぼでした!

この記事をシェアする

FacebookHatena blogX

関連記事