コンテンツにスキップ

container-use - AIエージェントにおけるコンテナ技術活用

Author: Kazukichi
  • Dagger社が開発しているOSS
    • ソロモン・ハイクスが創設したアメリカのスタートアップ
    • 現在はDaggerというOSS製品をメインに開発している
      • ちなみにソロモン・ハイクスはDockerの創設者
  • 複数のAIエージェントが安全に並列動作できるように、隔離された環境を提供する
  • 各AIエージェントが専用のコンテナ環境とGitブランチを利用する仕組み
  • MCPサーバとして起動される
  • GitHub: https://github.com/dagger/container-use

  • 過去にむらたさんが紹介していた: Daggerって知ってる?
  • CI/CDの設定をプログラマブルに記述でき、Dockerコンテナ上で動作させることで、複数のCI/CDを抽象化して扱える
  • container-useのインストール
    • ※ macOSの場合
Terminal window
$ brew install dagger/tap/container-use
  • Gitリポジトリの作成
Terminal window
$ mkdir container-use-practice
$ cd container-use-practice
$ git init
$ git commit --allow-empty -m "Initial commit"
  • container-useの起動
    • container-use stdio コマンドを実行する
    • 標準入出力で通信される
    • SSEやStreamable HTTPには現時点で対応していない模様
    • 今回はRoo Codeで検証したため、以下のような設定となる
{
"mcpServers": {
"container-use": {
"command": "container-use",
"args": [
"stdio"
]
}
}
}
  • プロンプト
    • モデルやコンテキストにもよると思うが、container-useを使用する旨を明記しないと使われなかった
SolidJSを使用し、「hello, world!」を表示するアプリケーションを作成してください。
なお、開発環境にはcontainer-useを使用してください。
  • そこからは適当に承認していれば、AIエージェントから随時、MCPサーバにリクエストが投げられてコンテナ上で機能が開発され、最終的に接続先(ローカルホストのエフェメラルポートが開く)を教えられる
  • container-useによって作成されたブランチの確認
Terminal window
$ git branch --all
* main
remotes/container-use/welcomed-wildcat
  • 以下のコマンドでcontainer-useによるコードの変更をローカルに落とすことができる
Terminal window
$ git checkout -b welcomed-wildcat remotes/container-use/welcomed-wildcat
  • 以下のコマンドで削除できる
    • AIエージェント越しでうまく実行させられなかったので手動で実行した
Terminal window
$ container-use delete welcomed-wildcat
  • 向いている人
    • ローカルを汚したくなく、隔離された環境で開発したい人
    • 隔離された環境で単発のスクリプトを作成してもらい、実行したい人
    • AIエージェントを複数同時に使うような環境にある人
  • 自分はどうか
    • ローカルを汚したくないケースが現状、あまりない
    • AIエージェントを複数同時に動かせるほど使いこなせていない
    • 正式な採用は見送り