ghcr.io/keito4/config-base イメージは、Claude Code の完全なセットアップを含む DevContainer イメージです。新しいリポジトリでこのイメージを使用することで、以下がすぐに利用可能になります:
- Claude Code CLI と設定
- 事前インストールされたプラグイン
- カスタムコマンド(
/config-base-sync-check,/security-credential-scanなど) - カスタムエージェント(DDD, パフォーマンス分析など)
- Git hooks(Quality Gates)
- 開発ツール(Node.js, pnpm, Rust, terraform, aws-cli など)
新しいリポジトリで使用する場合の推奨設定:
// .devcontainer/devcontainer.json
{
"name": "My Project",
"image": "ghcr.io/keito4/config-base:latest",
"remoteEnv": {
"TMPDIR": "/home/vscode/.claude/tmp"
}
}重要: ホストの ~/.claude をマウントしないことで、イメージに含まれている設定がそのまま使えます。
📝 上記の構成をそのまま .devcontainer/devcontainer.json として使用できます。
この構成では以下がすぐに利用できます:
- 事前インストールされたプラグイン
- カスタムコマンド
- カスタムエージェント
- Git hooks
# Claude Code コマンド
claude --help
# カスタムコマンド
/config-base-sync-check # イメージバージョン確認
/security-credential-scan # 認証情報スキャン
/code-complexity-check # コード複雑度チェック
/dependency-health-check # 依存関係ヘルスチェック
/pre-pr-checklist # PR前チェックリスト
# その他多数...以下のプラグインが事前インストールされています:
公式プラグイン (claude-plugins-official):
commit-commands- Git commit 関連のコマンドhookify- Git hooks の管理plugin-dev- プラグイン開発ツールtypescript-lsp- TypeScript 言語サーバーcode-review- コードレビュー支援
ワークフロープラグイン (claude-code-workflows):
code-refactoring- リファクタリング支援kubernetes-operations- Kubernetes 運用javascript-typescript- JavaScript/TypeScript 開発backend-development- バックエンド開発full-stack-orchestration- フルスタック開発オーケストレーションdatabase-design- データベース設計database-migrations- データベースマイグレーション
プラグインの追加インストールや設定のカスタマイズを永続化したい場合:
// .devcontainer/devcontainer.json
{
"name": "My Project",
"image": "ghcr.io/keito4/config-base:latest",
"remoteEnv": {
"TMPDIR": "/home/vscode/.claude/tmp"
},
"initializeCommand": "mkdir -p ~/.claude",
"mounts": ["source=${localEnv:HOME}/.claude,target=/home/vscode/.claude,type=bind,consistency=cached"],
"postCreateCommand": "/usr/local/bin/setup-claude.sh"
}注意: この構成では:
- ホストの
~/.claudeをマウントすると、イメージの設定が上書きされます setup-claude.shがイメージの設定をホスト側にコピーします- ホスト側の設定が優先されるため、存在しないプラグインのエラーが出る可能性があります
- DevContainer 専用で使う場合は、マウントなしの構成を推奨します
プロジェクト固有のコマンドやプラグインを追加する場合:
mkdir -p .claude/commands
mkdir -p .claude/plugins<!-- .claude/commands/my-custom-command.md -->
# My Custom Command
プロジェクト固有のコマンド説明...# .claude/plugins/plugins.txt
# プロジェクト固有のプラグイン
my-plugin@marketplace{
"name": "My Project",
"image": "ghcr.io/keito4/config-base:latest",
"remoteEnv": {
"TMPDIR": "/home/vscode/.claude/tmp"
},
"initializeCommand": "mkdir -p ~/.claude",
"mounts": ["source=${localEnv:HOME}/.claude,target=/home/vscode/.claude,type=bind,consistency=cached"],
"postCreateCommand": "/usr/local/bin/setup-claude.sh"
}setup-claude.sh は以下を自動的に行います:
- リポジトリの
.claude/commands/を~/.claude/commands/にコピー - リポジトリの
.claude/plugins/plugins.txtからプラグインをインストール
このリポジトリでイメージをビルドする場合:
# ローカルビルド(認証情報を使用)
DOCKER_BUILDKIT=1 docker build \
--secret id=claude_credentials,src=$HOME/.claude/.credentials.json \
-t ghcr.io/keito4/config-base:local \
-f .devcontainer/Dockerfile \
.
# GitHub Actions でのビルド(自動)
# main ブランチへのプッシュで自動的にビルド・リリース
git push origin mainイメージビルド時に認証情報がない場合、プラグインのインストールがスキップされます。コンテナ起動後に手動でインストールしてください:
claude plugin install <plugin>@<marketplace>setup-claude.sh を実行してhookifyパッチを適用してください:
/usr/local/bin/setup-claude.shマウント設定により、ホストの ~/.claude がイメージの内容を上書きしている可能性があります。postCreateCommand で setup-claude.sh を実行することで、イメージの設定をホスト側にコピーできます。