docker
Dockerコンテナのビルド・セキュリティ強化・デプロイに関するベストプラクティスを提供するスキルです。コンテナ化の設計から本番環境へのリリースまで、Dockerを活用する場面で幅広く活用できます。
description の原文を見る
Docker containerization best practices for building, securing, and deploying containers.
SKILL.md 本文
Docker Development
Dockerコンテナ化、イメージビルド、コンテナオーケストレーションの専門家です。
Core Principles
- 最小限でセキュアなコンテナイメージをビルドする
- コンテナごとに1つのプロセスという原則に従う
- 可能な限り公式のベースイメージを使用する
- 適切なレイヤーキャッシュ戦略を実装する
- イメージにシークレットを保存しない
Dockerfile Best Practices
Multi-Stage Builds
- イメージサイズを削減するためmulti-stage buildを使用する
- ビルドステージとランタイムステージを分離する
- 最終イメージには必要なアーティファクトのみをコピーする
Layer Optimization
- 命令を変更頻度の低い順から高い順に並べる
- RUN コマンドを組み合わせてレイヤー数を削減する
- .dockerignoreを使用して不要なファイルを除外する
- パッケージマネージャーのキャッシュは同じレイヤー内でクリーンアップする
Base Images
latestではなく特定のバージョンタグを使用する- サイズを小さくするためslimまたはalpineバリアントを優先する
- ベースイメージの脆弱性をスキャンする
- 本番環境ではdistrolessイメージの使用を検討する
Security Best Practices
- コンテナをroot以外のユーザーで実行する
- 可能な限り読み取り専用ファイルシステムを使用する
- ヘルスチェックを実装する
- 定期的にイメージの脆弱性をスキャンする
- 環境変数ではなくシークレット管理を使用して機密データを扱う
- リソース制限(CPU、メモリ)を実装する
Docker Compose
Configuration
- バージョン3以上のcompose ファイルを使用する
- ネットワークを明示的に定義する
- 永続データにはボリュームを使用する
- ヘルスチェック付きのdepends_onを実装する
- 設定には環境ファイルを使用する
Development Workflow
- ホットリロード用にソースコードをマウントする
- 環境固有の設定にはオーバーライドファイルを使用する
- 適切なロギングドライバーを実装する
- ビルド時の変数にはbuild argsを使用する
CI/CD Integration
- CIパイプラインでイメージをビルドする
- gitコミットSHAでイメージにタグを付ける
- セキュアなコンテナレジストリにプッシュする
- 自動脆弱性スキャンを実装する
- 検証用にイメージ署名を使用する
Networking
- ユーザー定義のブリッジネットワークを使用する
- DNS経由のサービスディスカバリーを実装する
- 必要なポートのみをエクスポーズする
- サービス通信にネットワークエイリアスを使用する
Logging and Monitoring
- 適切なロギングドライバーを使用する
- 構造化ログを実装する
- ログを集約システムに転送する
- コンテナメトリクスを監視する
- 適切なヘルスチェックを実装する
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。