Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

docker-containerization

DockerによるアプリケーションのコンテナIT化、Dockerfileの作成、docker-compose設定、各種プラットフォームへのデプロイを行う際に使用するスキルです。Next.js・React・Node.jsアプリケーションの開発・本番・CI/CDパイプライン向けコンテナ化に最適です。マルチステージビルド、コンテナオーケストレーション、Kubernetes・ECS・Cloud Runへのデプロイなど、Docker関連の設定全般が必要な場面で活用してください。

description の原文を見る

This skill should be used when containerizing applications with Docker, creating Dockerfiles, docker-compose configurations, or deploying containers to various platforms. Ideal for Next.js, React, Node.js applications requiring containerization for development, production, or CI/CD pipelines. Use this skill when users need Docker configurations, multi-stage builds, container orchestration, or deployment to Kubernetes, ECS, Cloud Run, etc.

SKILL.md 本文

Docker Containerization Skill

概要

最新の Web アプリケーション、特に Next.js と Node.js プロジェクト向けの本番環境対応 Docker 設定を生成します。このスキルは、Dockerfile、docker-compose セットアップ、コンテナ管理用の Bash スクリプト、および様々なオーケストレーションプラットフォーム向けの包括的なデプロイメントガイドを提供します。

コア機能

1. Dockerfile 生成

異なる環境に最適化された Dockerfile を作成します:

本番環境 (assets/Dockerfile.production):

  • イメージサイズを 85% 削減するマルチステージビルド
  • Alpine Linux ベース (~180MB 最終イメージ)
  • セキュリティのための非root ユーザー実行
  • ヘルスチェックとリソースリミット

開発環境 (assets/Dockerfile.development):

  • ホットリロード対応
  • すべての開発依存関係を含む
  • ライブコード更新用のボリュームマウント

Nginx Static (assets/Dockerfile.nginx):

  • 静的エクスポート最適化
  • Nginx リバースプロキシ搭載
  • 最小限のフットプリント

2. Docker Compose 設定

assets/docker-compose.yml によるマルチコンテナオーケストレーション:

  • 開発環境と本番環境のサービス
  • ネットワークとボリューム管理
  • ヘルスチェックとログ出力
  • 再起動ポリシー

3. コンテナ管理用 Bash スクリプト

docker-build.sh - 包括的なオプション付きイメージビルド:

./docker-build.sh -e prod -t v1.0.0
./docker-build.sh -n my-app --no-cache --platform linux/amd64

docker-run.sh - フル設定でコンテナ実行:

./docker-run.sh -i my-app -t v1.0.0 -d
./docker-run.sh -p 8080:3000 --env-file .env.production

docker-push.sh - レジストリへのプッシュ (Docker Hub、ECR、GCR、ACR):

./docker-push.sh -n my-app -t v1.0.0 --repo username/my-app
./docker-push.sh -r gcr.io/project --repo my-app --also-tag stable

docker-cleanup.sh - ディスク空き容量を確保:

./docker-cleanup.sh --all --dry-run  # クリーンアップをプレビュー
./docker-cleanup.sh --containers --images  # 特定のリソースをクリーン

4. 設定ファイル

  • .dockerignore: 不要なファイルを除外 (node_modules、.git、logs)
  • nginx.conf: 圧縮、キャッシュ、セキュリティヘッダー付きの本番環境対応 Nginx 設定

5. リファレンスドキュメント

docker-best-practices.md では以下をカバーしています:

  • マルチステージビルドの説明
  • イメージ最適化技法 (50-85% のサイズ削減)
  • セキュリティベストプラクティス (非root ユーザー、脆弱性スキャン)
  • パフォーマンス最適化
  • ヘルスチェックとログ出力
  • トラブルシューティングガイド

container-orchestration.md では以下へのデプロイをカバーしています:

  • Docker Compose (ローカル開発)
  • Kubernetes (エンタープライズ規模、オートスケーリング)
  • Amazon ECS (AWS ネイティブオーケストレーション)
  • Google Cloud Run (サーバーレスコンテナ)
  • Azure Container Instances
  • Digital Ocean App Platform

設定例、コマンド、オートスケーリング設定、モニタリングを含みます。

ワークフロー決定ツリー

1. どの環境ですか?

  • 開発環境Dockerfile.development (ホットリロード、すべての依存関係)
  • 本番環境Dockerfile.production (最小限、セキュア、最適化)
  • 静的エクスポートDockerfile.nginx (最小フットプリント)

2. シングルコンテナか マルチコンテナか?

  • シングル → Dockerfile のみを生成
  • マルチdocker-compose.yml を生成 (アプリ + データベース、マイクロサービス)

3. どのレジストリですか?

  • Docker Hubdocker.io/username/image
  • AWS ECR123456789012.dkr.ecr.region.amazonaws.com/image
  • Google GCRgcr.io/project-id/image
  • Azure ACRregistry.azurecr.io/image

4. デプロイプラットフォームはどれですか?

  • Kubernetesreferences/container-orchestration.md の K8s セクション参照
  • ECS → ECS タスク定義の例を参照
  • Cloud Run → デプロイメントコマンドを参照
  • Docker Compose → 提供されている compose ファイルを使用

5. 必要な最適化はありますか?

  • イメージサイズ → マルチステージビルド、Alpine ベース
  • ビルド速度 → レイヤーキャッシング、BuildKit
  • セキュリティ → 非root ユーザー、脆弱性スキャン
  • パフォーマンス → リソースリミット、ヘルスチェック

使用例

例 1: Next.js アプリを本番環境用にコンテナ化

ユーザー: 「Next.js アプリを本番環境用にコンテナ化したい」

ステップ:

  1. assets/Dockerfile.production をプロジェクトルートにコピーして Dockerfile にリネーム
  2. assets/.dockerignore をプロジェクトルートにコピー
  3. ビルド: ./docker-build.sh -e prod -n my-app -t v1.0.0
  4. テスト: ./docker-run.sh -i my-app -t v1.0.0 -p 3000:3000 -d
  5. プッシュ: ./docker-push.sh -n my-app -t v1.0.0 --repo username/my-app

例 2: Docker Compose による開発

ユーザー: 「ローカル開発用に Docker Compose をセットアップしたい」

ステップ:

  1. assets/Dockerfile.developmentassets/docker-compose.yml をプロジェクトにコピー
  2. docker-compose.yml でサービスをカスタマイズ
  3. 開始: docker-compose up -d
  4. ログ: docker-compose logs -f app-dev

例 3: Kubernetes へのデプロイ

ユーザー: 「コンテナ化されたアプリを Kubernetes にデプロイしたい」

ステップ:

  1. イメージをビルドしてレジストリにプッシュ
  2. references/container-orchestration.md の Kubernetes セクションを確認
  3. K8s マニフェストを作成 (deployment、service、ingress)
  4. 適用: kubectl apply -f deployment.yaml
  5. 確認: kubectl get pods && kubectl logs -f deployment/app

例 4: AWS ECS へのデプロイ

ユーザー: 「AWS ECS Fargate にデプロイしたい」

ステップ:

  1. ECR にビルドしてプッシュ
  2. references/container-orchestration.md の ECS セクションを確認
  3. タスク定義 JSON を作成
  4. 登録: aws ecs register-task-definition --cli-input-json file://task-def.json
  5. サービス作成: aws ecs create-service --cluster my-cluster --service-name app --desired-count 3

ベストプラクティス

セキュリティ

✅ 本番環境ではマルチステージビルドを使用 ✅ 非root ユーザーで実行 ✅ 特定のイメージタグを使用 (latest は不可) ✅ 脆弱性をスキャン ✅ シークレットをハードコーディングしない ✅ ヘルスチェックを実装

パフォーマンス

✅ レイヤーキャッシングの順序を最適化 ✅ Alpine イメージを使用 (~85% 小さい) ✅ 並列ビルド用に BuildKit を有効化 ✅ リソースリミットを設定 ✅ 圧縮を使用

保守性

✅ 複雑なステップにコメントを追加 ✅ 柔軟性のためにビルド引数を使用 ✅ Dockerfile を DRY に保つ ✅ すべての設定をバージョン管理 ✅ 環境変数をドキュメント化

トラブルシューティング

イメージが大きすぎる (>500MB) → マルチステージビルド、Alpine ベース、包括的な .dockerignore を使用

ビルドが遅い → レイヤーキャッシングを最適化、BuildKit を使用、依存関係を確認

コンテナがすぐに終了する → ログを確認: docker logs container-name → CMD/ENTRYPOINT を確認、ポート競合をチェック

変更が反映されない → キャッシュなしでリビルド、.dockerignore を確認、ボリュームマウントを確認

クイックリファレンス

# ビルド
./docker-build.sh -e prod -t latest

# 実行
./docker-run.sh -i app -t latest -d

# ログ
docker logs -f app

# 実行
docker exec -it app sh

# クリーンアップ
./docker-cleanup.sh --all --dry-run  # プレビュー
./docker-cleanup.sh --all            # 実行

CI/CD との統合

GitHub Actions

- run: |
    chmod +x docker-build.sh docker-push.sh
    ./docker-build.sh -e prod -t ${{ github.sha }}
    ./docker-push.sh -n app -t ${{ github.sha }} --repo username/app

GitLab CI

build:
  script:
    - chmod +x docker-build.sh
    - ./docker-build.sh -e prod -t $CI_COMMIT_SHA

リソース

スクリプト (scripts/)

包括的な機能を備えた本番環境対応 Bash スクリプト:

  • docker-build.sh - イメージビルド (400+ 行、カラー出力)
  • docker-run.sh - コンテナ実行 (400+ 行、自動競合解決)
  • docker-push.sh - レジストリへのプッシュ (マルチレジストリ対応)
  • docker-cleanup.sh - リソースクリーン (ドライランモード、選別的クリーン)

リファレンス (references/)

必要に応じてロードされる詳細なドキュメント:

  • docker-best-practices.md - 包括的な Docker ベストプラクティス (~500 行)
  • container-orchestration.md - 6+ プラットフォーム向けのデプロイメントガイド (~600 行)

アセット (assets/)

すぐに使用可能なテンプレート:

  • Dockerfile.production - マルチステージ本番環境 Dockerfile
  • Dockerfile.development - 開発環境 Dockerfile
  • Dockerfile.nginx - Nginx を使用した静的エクスポート
  • docker-compose.yml - マルチコンテナオーケストレーション
  • .dockerignore - 最適化された除外ルール
  • nginx.conf - 本番環境対応 Nginx 設定

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
ailabs-393
リポジトリ
ailabs-393/ai-labs-claude-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/ailabs-393/ai-labs-claude-skills / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: ailabs-393 · ailabs-393/ai-labs-claude-skills · ライセンス: MIT