dockerize-and-deploy について
リポジトリのコンテナ化とデプロイ構成を段階的に進めるスキルです。Docker ファイル、事前チェック、デプロイスクリプト、検証を扱い、シークレットや本番環境の保護策も示します。
主な機能
- 01ランタイムと既存構成の監査
- 02マルチステージ Dockerfile の作成
- 03開発・本番用 Compose の設定
- 04事前チェックとデプロイスクリプトの追加
- 05ビルドとサービスのヘルス確認
- 06コンテナとシークレットの安全対策
活用シーン
- 01既存リポジトリのコンテナ化
- 02ローカル開発スタックの構築
- 03本番用 Compose デプロイの準備
- 04リリース前のデプロイ確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rockclaver/ systemcraft --skill dockerize-and-deployインストール後、Claude Code で/dockerize-and-deployを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
REFERENCE.mdscripts/deploy.shpreflight.sh詳細
Docker 化とデプロイ
リポジトリをコンテナ化し、デプロイ環境をフェーズごとに構築します。
ワークフロー
1. 監査
ランタイム、サービス、データストア、ビルド手順、既存の Docker ファイル、環境変数を特定します。ファイルを作成する前にフェーズを提案します。
2. フェーズ
- Dockerfile — マルチステージ構成にします。ビルダーでインストールとコンパイルを行い、ランタイムには成果物のみをコピーします。非 root ユーザーを使用し、バージョンを固定したベースイメージ(例:
node:20.11-alpine)を指定します。.dockerignoreでnode_modules/.env/.gitを除外します。 - docker-compose — 開発用スタックを構成します。ホットリロード用のソースマウント、デバッグポート、名前付きボリュームを設定します。
- 本番用 compose(
docker-compose.prod.yml)— ソースマウントを使用せず、restart: unless-stopped、ヘルスチェック、明示的なボリューム、mem_limit/cpusの制限を設定します。REFERENCE.md を参照してください。 - 事前チェック —
scripts/preflight.shをプロジェクトにコピーします。環境変数、Docker、ポートの競合、DB への到達性、ビルドのドライランを検証します。実行方法:bash scripts/preflight.sh。 - デプロイ —
scripts/deploy.sh:preflight.shを実行(失敗時は中止)→ イメージをプル/ビルド → マイグレーションを実行 → ローリング再起動 → ヘルスチェック → 状態を出力。
シンプルなリポジトリでは、フェーズを統合またはスキップします。
3. 各フェーズの後に検証
docker build -t app:test . # Dockerfile compiles
docker compose config # compose files are valid YAML
docker compose up -d && docker compose ps # services start healthy
bash scripts/preflight.sh # pre-flight passes
ガードレール
- Docker/compose ファイルにシークレットを埋め込まないでください。
- コンテナは必ず非 root ユーザーで実行してください。
- 本番環境では
latestイメージタグを使用せず、バージョンを固定してください。 - DB ボリュームには名前付きボリュームのみを使用し、ホストのバインドマウントは使用しないでください。
.env.exampleがない場合は、まず作成してください。
参考資料
- REFERENCE.md — ボリューム/ヘルスチェックのパターン、リソース制限、ランタイム別のマルチステージ構成例、ローリングデプロイ戦略。
コメント
Markdown 対応