概要
Docker-in-Dockerを活用し、単一の常駐dev container内で複数リポジトリを横断してセキュアにClaude Codeを利用できる開発環境の構築手法を解説しています。
詳細内容
Finatextのエンジニアによる、AIコーディングエージェント「Claude Code」の最適な実行環境を構築するためのガイドです。ホストマシンから環境を隔離しつつ、リポジトリごとにコンテナを作成するオーバーヘッドを避けるため、単一の常駐コンテナで複数リポジトリを扱うアーキテクチャを提案しています。
主な特徴は以下の通りです:
- **DinD (Docker-in-Docker) による隔離**: ホストのdocker.sockをマウントせず、コンテナ内に独立したデーモンを立てることでホストのroot権限を保護し、安全な検証環境を実現。
- **認証情報の動的注入**: AWS CLIやGitHubのトークンをイメージに焼かず、ホスト側で取得した一時認証を環境変数としてコンテナ起動時に注入。
- **設定と履歴の永続化**: Claude Codeの認証情報やセッション履歴が保存される`~/.claude`ディレクトリをNamed Volumeに逃がすことで、コンテナを再構築してもログイン状態を維持。
- **共有MCP設定**: 全リポジトリで共通の`.mcp.json`を利用し、機密情報は環境変数経由で解決する構成を採用。
- **通知機能のハック**: コンテナ内のClaudeのターン終了を検知し、ホスト側で音を鳴らすポーリングの仕組みを導入し、利便性を向上。
AIエージェントに広範な権限を与えることへの懸念に対し、セキュリティと開発効率を両立させる実践的な知見がまとめられています。