mcpField
D
docker-development

docker-development

github.com/borgheiクラウド・DevOps1.0k65 回インストール1 週間前に更新
リポジトリ

docker-development について

Dockerfile と docker-compose の設定を分析し、セキュリティ、最適化、構成上の問題を確認するスキルです。コンテナのビルドやサービス設定を審査する開発者やチーム向けで、個別の解析ツールと CI 向け JSON 出力を備えています。

主な機能

  1. 01Dockerfile の安全性とベストプラクティス確認
  2. 02レイヤー、キャッシュ、ビルド段階の分析
  3. 03Compose のスキーマと依存関係の検証
  4. 04ポート、ボリューム、ネットワークの確認
  5. 05CI 向け JSON 出力

活用シーン

  1. 01本番投入前の Dockerfile 審査
  2. 02秘密情報の露出や root 実行リスクの検出
  3. 03Compose の依存関係とポートの検証
  4. 04CI でのコンテナチェック

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/borghei/claude-skills --skill docker-development

インストール後、Claude Code で/docker-developmentを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

examples/
docker-compose.sample.yml
Dockerfile.sample
references/
docker-best-practices.md
scripts/
compose_validator.py
dockerfile_analyzer.py

詳細

Docker 開発

カテゴリ: エンジニアリング ドメイン: コンテナー開発と最適化

概要

Docker 開発スキルは、Dockerfile と docker-compose の設定を自動分析します。レイヤー最適化の機会、セキュリティ上の問題、ベストプラクティスへの違反、Compose サービスの設定ミスを特定します。このスキルを使ってチーム全体でコンテナーの標準を徹底し、問題が本番環境に到達する前に検出できます。

最初に確認すること

分析を実行する前に、以下の情報を確認してください。不明または曖昧な項目があれば、推測せずに質問してください。

  • 対象ファイル — 分析する Dockerfile または docker-compose.yml(--file と実行するツールを指定します)
  • 分析対象 — 全項目の分析かセキュリティのみか、ポートの競合も確認するか(--security-only/--check-ports を指定します)
  • 出力形式 — 人が読める形式か、CI 用の JSON か(--format json と、検出結果でパイプラインをゲートするかを指定します)

停止ルール:出力に最も大きな影響を与える 2~3 項目だけを質問してください。ユーザーが「とりあえず作成して」と言った場合は、そのまま進め、成果物の冒頭に前提を列挙してください。

クイックスタート

# Analyze a Dockerfile for best practices
python scripts/dockerfile_analyzer.py --file Dockerfile

# Analyze with JSON output
python scripts/dockerfile_analyzer.py --file Dockerfile --format json

# Validate a docker-compose file
python scripts/compose_validator.py --file docker-compose.yml

# Check for port conflicts across compose files
python scripts/compose_validator.py --file docker-compose.yml --check-ports

ツールの概要

dockerfile_analyzer.py

Dockerfile を分析し、ベストプラクティス、セキュリティ上の問題、最適化の機会を特定します。

機能説明
レイヤーの最適化不要なレイヤーを検出し、RUN 文をまとめることを推奨します
マルチステージ分析マルチステージビルドのパターンと最終イメージのサイズを検証します
セキュリティスキャンroot での実行、latest タグの使用、シークレットの露出に警告を出します
ベースイメージの確認より小さいベースイメージ(alpine、distroless、slim)を推奨します
キャッシュの最適化Docker キャッシュを無効にする、適切でないレイヤーの順序を特定します
# Full analysis
python scripts/dockerfile_analyzer.py --file Dockerfile

# Security-focused scan
python scripts/dockerfile_analyzer.py --file Dockerfile --security-only

# JSON output for CI integration
python scripts/dockerfile_analyzer.py --file Dockerfile --format json
compose_validator.py

docker-compose ファイルの正確性、依存関係の問題、ポートの競合を検証します。

機能説明
スキーマ検証Compose ファイルの構造と構文を確認します
依存関係グラフdepends_on のチェーンに循環依存がないか検証します
ポート競合の検出重複するホストポートのバインドを特定します
ボリュームマウントの確認ボリュームパスとマウント設定を検証します
ネットワーク分析ネットワーク定義とサービスの接続性を確認します
# Full validation
python scripts/compose_validator.py --file docker-compose.yml

# Check port conflicts only
python scripts/compose_validator.py --file docker-compose.yml --check-ports

# JSON output
python scripts/compose_validator.py --file docker-compose.yml --format json

ワークフロー

Dockerfile レビューのワークフロー
  1. 分析 - 対象の Dockerfile に対して dockerfile_analyzer.py を実行します
  2. 検出結果の確認 - まず重大なセキュリティ上の問題(root ユーザー、シークレット)に対処します
  3. レイヤーの最適化 - RUN 文をまとめ、キャッシュ効率が高くなるように順序を変更します
  4. ベースイメージの検証 - 可能な場合は最小限のベースイメージに切り替えます
  5. 再分析 - 改善を確認し、リグレッションがないことを検証します
Compose 検証のワークフロー
  1. 構造の検証 - compose_validator.py を実行して構文とスキーマを確認します
  2. 依存関係の確認 - サービスの依存関係グラフを確認し、循環参照がないか調べます
  3. ポートの監査 - サービス間でホストポートが競合していないことを確認します
  4. ボリュームの確認 - ボリュームマウントが正しく、必要であることを確認します
  5. ネットワークの確認 - サービスの分離と接続性を検証します
CI 統合のワークフロー
# Example GitHub Actions step
- name: Docker Lint
  run: |
    python scripts/dockerfile_analyzer.py --file Dockerfile --format json > results.json
    python scripts/compose_validator.py --file docker-compose.yml --format json >> results.json

参考ドキュメント

よく使うパターンのクイックリファレンス

パターン良い例悪い例
ベースイメージFROM python:3.12-slimFROM python:latest
ユーザーUSER appuserroot として実行する
レイヤーの結合RUN apt-get update && apt-get install -y pkgupdate と install を別々の RUN で実行する
COPY の順序まず要件ファイルをコピーし、その後にコードをコピーするすべてを一度にコピーする
マルチステージビルダーステージと最小限のランタイムを使用するビルドツールを含む単一ステージを使用する
シークレットビルドシークレットまたは実行時の環境変数を使用するCOPY .env . または ENV SECRET=value
ヘルスチェックHEALTHCHECK CMD curl -f http://localhost/ヘルスチェックが定義されていない
.dockerignorenode_modules、.git などを含める.dockerignore ファイルがない
Compose のパターン
パターン良い例悪い例
再起動ポリシーrestart: unless-stopped再起動ポリシーがない
リソース制限deploy.resources.limits を設定するリソースが無制限
名前付きボリュームvolumes: [db-data:/var/lib/postgresql]匿名ボリューム
ネットワークネットワークを明示的に定義するデフォルトのブリッジのみ
環境変数env_file: .envcompose ファイルにシークレットを直接記述する

コメント