docker-optimizer
Dockerfileのセキュリティとパフォーマンスの最適化
Dockerイメージは多くの場合、肥大化して安全性が低下しています。このスキルはDockerファイルを分析し、マルチステージビルド、セキュリティ強化、サイズ削減技術を備えた最適化バージョンを提供します。
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「docker-optimizer」を使用しています。 Node.jsのDockerfileをベストプラクティスに基づいて確認してください
期待される結果:
- 3つの最適化機会を発見しました:
- 特定のベースイメージバージョンを使用する(node:latestの代わりにnode:18-alpine)
- マルチステージビルドを追加して最終イメージサイズを70%削減する
- 非rootユーザーを作成してセキュリティを確保する(现在是rootで実行中)
- ソースコードの前に依存関係をコピーしてキャッシュを改善する
- 15の不要なファイルを除外する.dockerignoreを追加する
- コンテナヘルス監視のためのHEALTHCHECK命令を追加する
「docker-optimizer」を使用しています。 PythonのDockerイメージが900MBありますが、どのように削減すればよいですか
期待される結果:
- Pythonイメージ削減の推奨アプローチ:
- python:3.11からpython:3.11-alpineに切り替える(900MBから50MB)
- マルチステージビルドを使用してビルド依存関係を分離する
- pip --no-cache-dirで本番環境のみのパッケージをインストールする
- 同じRUNレイヤーでaptキャッシュを削除して余分なレイヤーを避ける
- レイヤーを最小化するために関連するRUNコマンドを結合する
セキュリティ監査
安全This is a legitimate Docker optimization documentation skill. All 52 static findings are false positives caused by misidentification: Dockerfile instructions (FROM, ENV, ARG) were flagged as cryptographic algorithms, Markdown backticks were flagged as shell execution, and standard Docker best practices were flagged as security vulnerabilities. The skill only reads and analyzes Dockerfiles using Read, Grep, Glob, Write, Edit tools with no network access or code execution capability.
リスク要因
🌐 ネットワークアクセス (1)
⚙️ 外部コマンド (35)
📁 ファイルシステムへのアクセス (1)
🔑 環境変数 (1)
品質スコア
作れるもの
本番デプロイの最適化
強化された設定により、Dockerイメージサイズを80%削減し、本番デプロイのセキュリティ体制を改善します。
開発ワークフローの強化
最適化されたレイヤキャッシュと、ビルド依存関係とランタイムを分離するマルチステージビルドでローカル開発を高速化します。
コンテナセキュリティ監査
rootとして実行している、 secretsを公開している、脆弱なベースイメージを使用しているなど、Dockerファイル内のセキュリティアンチパターンを特定します。
これらのプロンプトを試す
このDockerfileを確認して、何が問題かを教えてください。Docker初心者なので、ベストプラクティスに従いたいです。
私のDockerイメージは2GBで、ビルドに時間がかかりすぎます。どうすれば小さく速くできますか?
このDockerfileを本番で使用するためにセキュアにする必要があります。セキュリティの問題を確認し、強化されたバージョンを提供してください。
このシングルステージのDockerfileを、ビルド依存関係とランタイムイメージを分離するためにマルチステージビルドを使用するように変換してください。
ベストプラクティス
- 再現可能なビルドのためには、latestではなく特定のベースイメージタグを常に使用する
- 本番イメージを最小限かつ安全にするために、マルチステージビルドを実装する
- コンテナの権限を制限するために、非rootユーザーを作成して使用する
回避
- ENV命令を使用して secrets やAPIキーを直接Dockerfileにハードコードすることは絶対にしない
- 特定のファイルのみが必要な場合に、ソースディレクトリ全体をコピーすることを避ける
- 同じレイヤーでキャッシュをクリーンせずにパッケージマネージャーを実行しない