0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows11にDocker上で動くGemini CLI環境を構築してみた

Posted at

はじめに

こんにちは。
今回は、Windows11のローカル環境にDockerを使い、GoogleのGemini CLIを実行する環境を構築してみました。

「新しいツールを試したいけど、ローカル環境は汚したくない」「万が一の動作が心配なので、隔離された環境で安全に使いたい」という思いから、今回の環境構築に至りました。

この記事では、AI搭載エディタ「Cursor」を相棒に、ほとんど手間をかけずに環境を構築した手順と、認証で少しだけ詰まった点の解決策を共有します。

私のPC環境

  • OS: Windows 11 Home
  • CPU: AMD Ryzen 7 5700X 8-Core Processor
  • メモリ: 32GB

なぜDocker上に環境を構築したのか

理由はシンプルで、以下の2点です。

  1. ローカル環境を汚さないため
    新しいツールを試す際、関連ファイルや設定がPC内に散らかるのは避けたいものです。Dockerコンテナなら、不要になった際にコンテナを削除するだけで、環境をクリーンに保てます。

  2. セキュリティを確保するため
    万が一、Gemini CLIが意図しない動作をした場合でも、その影響をコンテナ内に限定できます。ローカルのファイルシステムから隔離されているため、安心してコマンドを実行できます。

実施した手順

1. Docker Desktopのインストール

まず、WindowsにDocker環境を導入します。インストールは、基本的に以下の記事の手順通りに進めることで問題なく完了します。
https://qiita.com/0xv80/items/597300827b212cab4328

ただ、私の場合はこの画面でSkipせず、Googleアカウントを使ってサインアップを行いました。
Googleアカウントでのサインアップ画面

画面下部のGoogleアイコンボタンを押すとブラウザが起動し、以下の画面が表示されるのでSign upボタンを押して認証を完了させます。
ブラウザでの認証画面

2. CursorにDockerfileを作ってもらう

次に、Gemini CLIを実行するためのDockerコンテナの設計図であるDockerfileを作成します。
ここでは、AI搭載エディタのCursorを活用しました。

まず、以下のような簡単な指示を出してみました。

gemini cliを動かせるDockerコンテナ環境を構築して

Cursorへの最初の指示

すると、なぜかPythonを使おうとしたので、軌道修正を依頼しました。

pythonは必要ですか?node.jsさえ入っていれば、gemini cliはインストールできる認識です。

Cursorへの軌道修正の指示

構築方針が問題なさそうだったので、この内容で作業を開始してもらい、最終的に以下のDockerfileが完成しました。

FROM node:18

# gemini CLIをグローバルインストール
RUN npm install -g @google/gemini-cli

# 作業ディレクトリ
WORKDIR /workspace

# 初回起動時にgemini --debugを実行するエントリポイント
CMD ["gemini", "--debug"]

3. Dockerコンテナのビルドと起動

CursorはDockerfileと同時に、丁寧なREADME.mdも生成してくれました。この使い方に沿って、イメージのビルドとコンテナの起動を実行します。

README.md
# Gemini CLI用Dockerコンテナ

このコンテナは、Google Gemini CLIをNode.js環境で動作させるためのものです。

## 使い方

### 1. イメージのビルド
```sh
docker build -t gemini-cli .
```

### 2. コンテナの起動
```sh
docker run --rm -it gemini-cli
```

初回起動時はGoogleアカウントでの認証が必要です。`--debug`オプション付きでgemini CLIが起動します。

認証フローに従って、ブラウザで認証を完了してください。

---

## 補足
- 必要に応じて`-v`オプションで認証情報や設定ファイルをホストと共有できます。
- 詳細は公式ドキュメントをご参照ください。 

ターミナルでdocker runコマンドを実行すると、無事にGemini CLIが起動しました。(最初にテーマを選ぶように指示されるので、好みのものを選択してください。)

Gemini CLIの初回起動画面

4. Gemini CLIのGoogleアカウント認証(少し工夫が必要)

テーマを選択後、認証方法を尋ねられます。今回は一番上のLogin with Googleを選択します。

認証方法の選択画面

Login with Googleを選択すると、認証用のURLがターミナルに表示されるので、このURLをブラウザで開きます。

認証用URLの表示

ブラウザでGoogleアカウントを選択し、ログインを進めていくと…

Googleアカウントの選択

ログインの確認

最終的にこのサイトにアクセスできませんというエラー画面が表示されてしまいました。
これは、コンテナ内で起動したCLIの認証情報を、ブラウザ(外部)経由で受け取ることができないために発生します。

認証エラー画面

【解決策】手動で認証情報をコンテナに伝える

この問題は、以下の手順で解決できます。
※こちらの記事を参考にさせていただきました。
https://deep.tacoskingdom.com/blog/276

  1. リダイレクトURLをコピーする
    エラー画面が表示されているブラウザのアドレスバーから、URL全体をコピーします。

  2. 別のターミナルからコンテナに入る
    新しいターミナルを開き、docker exec -it {コンテナID or コンテナ名} bashコマンドで、現在起動しているコンテナに接続します。

  3. curlコマンドでURLにアクセスする
    コンテナ内で、先ほどコピーしたURLを引数にしてcurlコマンドを実行します。

    curl -v "http://localhost~..." # ここにコピーしたURLを貼り付ける
    

    curlコマンドの実行結果

この操作により、認証情報が手動でコンテナに渡されます。
元のターミナルに戻ると、無事に認証が完了し、Gemini CLIが使えるようになっています!

認証成功後の画面

今回の作業を通して学んだポイント

  • AIエージェント(Cursor)の活用でDockerfileの自作がほぼ不要だったこと
    Dockerに詳しくなくても、AIと対話するだけで最適なDockerfileが瞬時に用意できるのは、非常に強力だと感じました。
  • 人間は本質的な作業に集中できること
    Dockerfileの作成や基本的なコマンドの整理はAIが代行してくれたため、人間(私)は「Google認証をどう通すか」という今回の詰まりポイントの解決に集中することができました。

まとめ

DockerとAIエージェントを活用することで、ローカル環境を汚さずに、かつ安全なツール実行環境を予想以上に簡単に構築できました。
認証部分で少し工夫は必要でしたが、それも含めて非常にスムーズな体験でした。

「ローカル環境をクリーンに保ちたい」「新しいツールを安全に試したい」という方には、非常におすすめの方法です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?