mcpField
D
docker-extend

docker-extend

github.com/coleam00クラウド・DevOps23.8k278 回インストール今日更新
リポジトリ

docker-extend について

プロジェクトの Docker 設定に個人用ツールを追加し、カスタムファイルをコミットせずに管理するスキルです。開発用ビルドとデプロイ用の構成を判別し、必要なファイルと再ビルド手順を案内します。

主な機能

  1. 01開発用とデプロイ用の判別
  2. 02サンプルから不足ファイルを作成
  3. 03指定された apt パッケージの追加
  4. 04構成に応じた再ビルドコマンドの提示
  5. 05個人用のオーバーライドを未コミットで管理

活用シーン

  1. 01開発用 Docker イメージへのツール追加
  2. 02デプロイ用 Docker イメージのカスタマイズ
  3. 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

まとめ

ユーザーに次のことを伝えます:

  1. 作成されたファイル(あれば)
  2. Dockerfile.user に追加されたツール(あれば)
  3. 準備ができたときに実行する再ビルドコマンド
  4. Dockerfile.user と docker-compose.override.yml は Git の追跡対象外であり、個人用のためコミットされないことを再確認します

コメント