layercheck について
layercheckは、Docker daemonやビルドを使わずにDockerfileを分析するコマンドラインツール兼stdio MCPサーバーです。開発者向けにレイヤー数やサイズを調べ、イメージ容量やビルドキャッシュを浪費しうる特定の記述を検出します。
主な機能
- 01Dockerfileの命令と継続行の解析
- 02レイヤーを生成する命令の集計
- 03指定されたレイヤーサイズの大きい順表示
- 04連続するRUN命令の検出
- 05早すぎる広範なCOPY、APTの残存物、ローカルADDの検出
活用シーン
- 01指定されたdocker historyのサイズから大きなレイヤーを特定
- 02イメージ容量を浪費しうるDockerfile記述の発見
- 03キャッシュに影響するCOPYの配置確認
- 04レイヤーサイズの入力と命令数の照合
MCP 対応
`analyze_dockerfile_layers`ツールを提供し、Dockerfileのテキストと任意のレイヤーサイズを受け取り、レイヤー数、サイズ順の一覧、浪費フラグなどを返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| dockerfile | string | はい | Dockerfile のテキスト |
| layer_sizes | array | いいえ | 各レイヤー生成命令(RUN、COPY、ADD)のサイズをバイト単位で、Dockerfile 内の順に指定します。docker history の報告値に合わせてください。配列の長さはレイヤー生成命令の数と一致する必要があります。 |
詳細
layercheck
Dockerfile 内のすべての RUN、COPY、ADD はイメージにレイヤーを残します。イメージサイズやビルドキャッシュの問題は、レイヤーに起因します。layercheck は Dockerfile をプレーンテキストとして読み取り、Docker デーモンもビルドも使わずに、次の内容を報告します。
\による継続行を結合し、空行と#コメントを除外して解析した各命令と、レイヤーを生成するかどうか- レイヤー数と、レイヤーごとのサイズ(
docker historyの出力形式)を指定した場合は合計サイズ、およびサイズの大きい順に並べたレイヤー。最も大きなレイヤーが最初に表示されます - 検出された行番号を含む、判定条件が明確な無駄のフラグ:
CONSECUTIVE_RUN— RUN の直後に別の RUN がある場合。2 つを 1 つのレイヤーにまとめられますBROAD_COPY_EARLY— 依存関係のインストール手順より前にCOPY . .(または./)が配置されている場合。ソースに変更があるたびにキャッシュが無効になりますAPT_LEFTOVER— 同じ RUN 内で/var/lib/apt/listsを削除せずにapt-get installを実行している場合ADD_LOCAL— 通常のローカルファイルに ADD を使用している場合。COPY のほうが意図の明確な命令です(リモート URL とアーカイブは問題ありません)
指定されたサイズの数が、レイヤーを生成する命令の数と一致しない場合、layercheck はそのまま対応付けるのではなく、両方の数を示して不一致を報告します。
CLI
npx @reneturcios/layercheck analyze --dockerfile Dockerfile
npx @reneturcios/layercheck analyze --dockerfile Dockerfile --sizes sizes.json
npx @reneturcios/layercheck --version
sizes.json は数値の JSON 配列です。Dockerfile 内での順序に従い、レイヤーを生成する各命令のサイズをバイト単位で指定します。
解析結果は 1 つの JSON オブジェクトとして出力されます。
{layer_count, total_size_bytes, instructions, biggest_layers, waste_flags}。
終了コード:成功時は 0、実行時エラー(読み取れないファイルやサイズの数の不一致を含む)時は 1、使用方法のエラー時は 2 です。
MCP サーバー
npx -y @reneturcios/layercheck mcp
MCP クライアントの設定:
{
"mcpServers": {
"layercheck": {
"command": "npx",
"args": ["-y", "@reneturcios/layercheck", "mcp"]
}
}
}
ツール
analyze_dockerfile_layers— Dockerfile のレイヤーを解析し、無駄なレイヤーにフラグを付けます。dockerfile(文字列、必須)— Dockerfile のテキストlayer_sizes(数値の配列、任意)— Dockerfile 内での順序に従った、レイヤーを生成する各命令のサイズ(バイト単位)。配列の長さは、レイヤーを生成する命令の数と一致する必要があります
Docker
docker run -i ghcr.io/cloudcorprecords/layercheck
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/layercheck analyze --dockerfile /w/Dockerfile
開発
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (pure local, no network)
npm run dev # run the CLI from source
ライセンス
MIT — Copyright (c) 2026 Rene Turcios
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。