docker-extend について
プロジェクトの Docker 設定に個人用ツールを追加し、カスタムファイルをコミットせずに管理するスキルです。開発用ビルドとデプロイ用の構成を判別し、必要なファイルと再ビルド手順を案内します。
主な機能
- 01開発用とデプロイ用の判別
- 02サンプルから不足ファイルを作成
- 03指定された apt パッケージの追加
- 04構成に応じた再ビルドコマンドの提示
- 05個人用のオーバーライドを未コミットで管理
活用シーン
- 01開発用 Docker イメージへのツール追加
- 02デプロイ用 Docker イメージのカスタマイズ
- 03個人用 Docker 設定を編集した後の再ビルド
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ coleam00/ archon --skill docker-extendインストール後、Claude Code で/docker-extendを入力して読み込まれたか確認します。
詳細
Docker 拡張
プロジェクトの Git 追跡対象外のオーバーライドパターンを使って、個人用の Docker ツールのカスタマイズを設定します。
Dockerfile.user と docker-compose.override.yml はユーザー専用であり、Git にコミットされることはありません。
ステップ 1:コンテキストを検出する
ユーザーが開発モード(ソースからビルド)かデプロイモード(GHCR)かを判定します。
!if [ -f docker-compose.yml ] && grep -q 'build: \.' docker-compose.yml 2>/dev/null; then echo "DEV_MODE: Building from source (root docker-compose.yml)"; elif [ -f deploy/docker-compose.yml ]; then echo "DEPLOY_MODE: Using GHCR image (deploy/docker-compose.yml)"; else echo "UNKNOWN_MODE: No docker-compose.yml found in root or deploy/"; fi
判定:
DEV_MODE→Dockerfile.userとdocker-compose.override.yml(リポジトリのルート)を使用しますDEPLOY_MODE→deploy/Dockerfile.userとdeploy/docker-compose.override.ymlを使用しますUNKNOWN_MODE→ 続行する前に、ユーザーのdocker-compose.ymlがどのディレクトリにあるか尋ねます
ステップ 2:現在の状態を確認する
DEV_MODE — ルートのファイルを確認:
!echo "=== Dockerfile.user ===" && (cat Dockerfile.user 2>/dev/null || echo "(not found — will create from example)") && echo "" && echo "=== docker-compose.override.yml ===" && (cat docker-compose.override.yml 2>/dev/null || echo "(not found — will create from example)")
DEPLOY_MODE — deploy/ のファイルを確認:
!echo "=== deploy/Dockerfile.user ===" && (cat deploy/Dockerfile.user 2>/dev/null || echo "(not found — will create from example)") && echo "" && echo "=== deploy/docker-compose.override.yml ===" && (cat deploy/docker-compose.override.yml 2>/dev/null || echo "(not found — will create from example)")
両方のファイルがすでに存在する場合: ステップ 4(ツールを追加する)に進みます。 ファイルがない場合: ステップ 3(サンプルからコピーする)に進みます。 サンプルファイルもない場合: プロジェクトにはまだサンプルファイルが追加されていないことをユーザーに伝え、メンテナーまたはドキュメントに確認するよう案内します。
ステップ 3:サンプルファイルをコピーする
不足しているファイルに対応するコピーコマンドのみ実行します。既存のファイルを上書きしてはいけません。
DEV_MODE:
# Only if Dockerfile.user does not exist:
cp Dockerfile.user.example Dockerfile.user
# Only if docker-compose.override.yml does not exist:
cp docker-compose.override.example.yml docker-compose.override.yml
DEPLOY_MODE:
# Only if deploy/Dockerfile.user does not exist:
cp deploy/Dockerfile.user.example deploy/Dockerfile.user
# Only if deploy/docker-compose.override.yml does not exist:
cp deploy/docker-compose.override.example.yml deploy/docker-compose.override.yml
コピーコマンドを実行した後、作成されたファイルをユーザーに確認します。
ステップ 4:ツールを追加する
ツール名(スペース区切り。例:vim ripgrep jq)を $ARGUMENTS から解析します。
ツールが指定されている場合: 該当する Dockerfile.user を編集し、指定されたパッケージを追加する RUN apt-get install ブロックを追加するか、コメント解除します。Edit ツールを使用してください。ファイル全体を書き直してはいけません。
追加または変更するブロック:
RUN apt-get update && apt-get install -y --no-install-recommends \
<tool1> \
<tool2> \
&& rm -rf /var/lib/apt/lists/*
ツールが指定されていない場合: ファイルをユーザーに表示し、追加したいツールを尋ねます。その後、ファイルを編集します。
ステップ 5:再ビルドする
ユーザーのコンテキストに応じた再ビルドコマンドを表示します。自動的に実行してはいけません。
DEV_MODE:
docker compose build && docker compose up -d
DEPLOY_MODE:
cd deploy && docker compose build && docker compose up -d
まとめ
ユーザーに次のことを伝えます:
- 作成されたファイル(あれば)
Dockerfile.userに追加されたツール(あれば)- 準備ができたときに実行する再ビルドコマンド
Dockerfile.userとdocker-compose.override.ymlは Git の追跡対象外であり、個人用のためコミットされないことを再確認します