
Kiro CLIをDevContainer(Docker)内で使えるようにする
Kiro CLI をDevContainer(Docker)で使いたいな〜って時、ありませんか?
AIエージェントは、ファイルの読み書きやコマンド実行ができるため、ホストPCに直接インストールすると、プロジェクト外のファイルや環境変数など ローカルPCの情報に広くアクセスできる状態 になります。
DevContainer内に閉じれば、アクセス範囲をコンテナ内のプロジェクトファイルに限定でき、意図しないファイル操作のリスクを減らせます。
私はKiro CLIをDevContainerで使っているので、その方法を共有します。
Kiro CLI自体の使い方については、弊社ブログに活用記事があるのでこちらもご覧ください。
最初に結論
Dockerfileにインストールを書き、devcontainer.jsonの mounts で認証情報を名前付きvolumeに永続化します。
ARG USERNAME=node
# Kiro CLI用ディレクトリの作成と権限設定
RUN mkdir -p /home/${USERNAME}/.kiro /home/${USERNAME}/.local/share/kiro-cli && \
chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.kiro /home/${USERNAME}/.local
# non-root user
USER ${USERNAME}
# Kiro CLIのインストール先をPATHに追加
ENV PATH=$PATH:/home/${USERNAME}/.local/bin
# Kiro CLIのインストール
RUN curl -fsSL https://cli.kiro.dev/install | bash
{
"mounts": [
{
"source": "kiro-config",
"target": "/home/node/.kiro",
"type": "volume"
},
{
"source": "kiro-cli-data",
"target": "/home/node/.local/share/kiro-cli",
"type": "volume"
}
]
}
Dockerfile と devcontainer.json の全文サンプルはブログの最後に載せています。
Kiro CLIとは
Kiro CLIはAWSが提供するAIコーディングアシスタント「Kiro」のCLI版です。ターミナルから直接AIにコーディングを依頼でき、コード生成・バグ修正・テスト実行などを自動化できます。
(MacとLinuxの場合)インストールはワンライナーで完了し、バイナリは ~/.local/bin/kiro-cli に配置されます。
$ curl -fsSL https://cli.kiro.dev/install | bash
devcontainerで使うときの課題
Kiro CLIの認証にはいくつかの方式がありますが、コンテナなどブラウザが直接開けない環境ではデバイスコード認証が使われます。
初回起動時にURLと確認コードが表示され、ホストPCのブラウザで認証を完了する仕組みです。
$ kiro-cli login --use-device-flow
✔ Select login method · Use with Pro license
✔ Enter Start URL · https://d-XXXXXXXXXX.awsapps.com/start/
✔ Enter Region · us-east-1
Confirm the following code in the browser
Code: XXXX-XXXX
Open this URL: https://d-XXXXXXXXXX.awsapps.com/start/#/device?user_code=XXXX-XXXX
Docker内でも、ホストPCのブラウザでURLを開けば認証は完了できます。
問題は、認証情報がコンテナ内のファイルに保存されるため、コンテナを作り直すと消えてしまうことです。
毎回認証をやり直すのは手間がかかります。
セットアップ
以下の方針で対応します。
- インストール → Dockerfileに書いてイメージに含める
- 認証情報の永続化 → devcontainer.jsonの
mountsで名前付きvolumeにマウント
Dockerfileの変更
Kiro CLIのインストールに必要な設定を追加します。
ARG USERNAME=node
# Kiro CLI用ディレクトリの作成と権限設定
RUN mkdir -p /home/${USERNAME}/.kiro /home/${USERNAME}/.local/share/kiro-cli && \
chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.kiro /home/${USERNAME}/.local
# non-root user
USER ${USERNAME}
# Kiro CLIのインストール先をPATHに追加
ENV PATH=$PATH:/home/${USERNAME}/.local/bin
# Kiro CLIのインストール
RUN curl -fsSL https://cli.kiro.dev/install | bash
ポイントは mkdir と chown です。volumeのマウント先ディレクトリを非rootユーザーの権限で事前に作成しておきます。
これをしないと、マウント時にrootが所有するディレクトリが作られ、Kiro CLIが認証情報等を書き込めなくなります。
既存のDockerfileがある場合は、適切な位置に追記してください。
devcontainer.jsonの変更
devcontainer.jsonの mounts プロパティで名前付きvolumeを定義します。
{
"mounts": [
{
"source": "kiro-config",
"target": "/home/node/.kiro",
"type": "volume"
},
{
"source": "kiro-cli-data",
"target": "/home/node/.local/share/kiro-cli",
"type": "volume"
}
]
}
~/.kiro と ~/.local/share/kiro-cli の2つをマウントしています。
~/.local/share/kiro-cli フォルダにログイン後の認証情報が保存されることは、こちらのサイトで確認しました。
devcontainer.jsonの mounts はDocker CLIの --mount フラグと同じ形式で、名前付きvolumeを定義できます。
マウント先のパスはコンテナ内のユーザーに合わせてください。上記はデフォルトユーザー node(ホームが /home/node)の場合の例です。
動作確認
初回認証
devcontainerをビルドして起動します。コンテナ内のターミナルでKiro CLIを実行します。
$ kiro-cli login --use-device-flow
URLと確認コードが表示されるので、URLをブラウザにコピー&ペーストして、認証を完了します。




認証完了後、Kiro CLIを実行するとログイン完了していて、使えます。
$ kiro-cli
Welcome to Kiro!
再ビルド後に認証情報が残っているか確認
認証完了後、devcontainerを再ビルドして、dockerプロセスを再起動してみます。
VS Codeのコマンドパレットから Dev Containers: Rebuild Container を実行します。

再ビルド後、devcontainerの中に入って、Kiro CLIを起動します。
$ kiro-cli
認証画面が表示されずにチャット画面が起動すれば、認証情報の永続化は成功です。

おわりに
Kiro CLIをDevContainer(Docker)内で使えるようにする方法を紹介しました。
DevContainerに閉じることでホストPCへの影響を気にせずAIエージェントを使えるのは精神的にも楽です。
ただし、ワークスペースフォルダはホストからバインドマウントされるため、完全なサンドボックスではない点には留意してください。
弊社ブログではClaude CodeのDevContainerセットアップ記事もあるので、併せて参考にしてみてください。
このブログがどなたかのお役に立てれば幸いです。
設定ファイルの全文サンプル
最後に、今回の設定ファイルの全文を掲載します。
npx を使うスキルやツールも利用したいので、ベースイメージはNode.js入りの mcr.microsoft.com/devcontainers/javascript-node を使用しています。
FROM mcr.microsoft.com/devcontainers/javascript-node:24
ARG USERNAME=node
# Kiro CLI用ディレクトリの作成と権限設定
RUN mkdir -p /home/${USERNAME}/.kiro /home/${USERNAME}/.local/share/kiro-cli && \
chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.kiro /home/${USERNAME}/.local
# non-root user
USER ${USERNAME}
# Kiro CLIのインストール先をPATHに追加
ENV PATH=$PATH:/home/${USERNAME}/.local/bin
# Kiro CLIのインストール
RUN curl -fsSL https://cli.kiro.dev/install | bash
{
"name": "Kiro CLI Dev Container",
"build": {
"dockerfile": "Dockerfile"
},
"remoteUser": "node",
"mounts": [
{
"source": "kiro-config",
"target": "/home/node/.kiro",
"type": "volume"
},
{
"source": "kiro-cli-data",
"target": "/home/node/.local/share/kiro-cli",
"type": "volume"
}
],
"customizations": {
"vscode": {
"extensions": []
}
}
}










