🐳

Claude Codeは開発コンテナに入れない方が良かった話

に公開

私は普段、開発用の Docker コンテナに入りその中で開発作業を行うことが多いです。
Claude Code を導入する際も「コンテナ内で動かす」前提で考えていました。
しかし実際に試してすぐに壁にぶつかり、最終的にローカルにインストールしてそのまま使う方法に落ち着きました。

なぜコンテナに入れるのをやめた?

コンテナ再起動の度に Claude Code の初期設定・認証を求められるからです。
特に開発初期は Dockerfile や compose ファイルを頻繁に編集するため、この再設定はかなり面倒です。

compose.yml(うまくいかなかった)
...

volumes:
      - ~/.claude:/root/.claude

こんな感じで認証情報や設定ファイルをホスト側からマウントすれば解決できるのではと思ったのですが、うまくいきませんでした。
(うまいやり方をご存知の方がいれば、ぜひ教えていただきたいです)

コンテナ経由でコマンドを実行してもらう

公式のドキュメントでも紹介されている通り、CLAUDE.md にビルド・実行・環境操作などのコマンドを記述しておけば、Claude はその内容に従ってコマンドを実行してくれます。

各コマンドを Docker 経由で実行するように明記しておけば、その通りに実行してくれます。
Claude に頼めばいい感じに書いてもらえます。

Makefile に書くのが良さそう

実行手順をまとめるという意味でも、Makefile にコマンドを記述し、CLAUDE.md に利用方法を書いておくと便利です。
もちろん Makefile 自体も、Claude に書いてもらいました。

CLAUDE.md(Claude が書いたものの抜粋)
...

## Essential Commands Reference

All commands must be run as specified below:

```bash
# Development environment
make up          # Start Docker environment
make down        # Stop Docker environment

# Testing and Quality
make test                      # Run all tests (parallel execution)
Makefile(Claude が書いたものの抜粋)
...

up:
	@docker compose up -d

down:
	@docker compose down

test:
	@echo "Running tests..."
	@go test -v -parallel 4 ./...

最後に

コーディングは Claude に任せ、確認用のコマンドもホスト側から実行すれば十分。
気がつけば、私自身がコンテナに入ることもなくなっていました。
Claude のような AI エージェントは、開発スタイルそのものまで変えていく存在なのかもしれません。

Discussion