mcpField
L
ln-783-container-launcher

ln-783-container-launcher

github.com/levnikolaevichクラウド・DevOps584376 回インストール2 日前に更新
リポジトリ

ln-783-container-launcher について

Docker イメージのビルド、Compose サービスの起動、ヘルスチェックを行うスキルです。単独でのコンテナ起動や開発環境の準備向けで、本番デプロイや複数ホストのオーケストレーションは対象外です。

主な機能

  1. 01Docker と Compose の事前確認
  2. 02Compose 設定の解析
  3. 03イメージのビルドとコンテナ起動
  4. 04リトライとバックオフ付きのヘルスチェック
  5. 05アクセス URL とクリーンアップ手順の提示

活用シーン

  1. 01Compose を使った開発環境の起動
  2. 02コンテナ起動後のサービス準備状況の確認

インストール

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

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-783-container-launcher

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

同梱ファイルreferences/monitor_integration_pattern.md

詳細

パス: ファイルパス(references/、../ln-*)は、このスキルディレクトリからの相対パスです。

ln-783-container-launcher

タイプ: L3 ワーカー
カテゴリー: 7XX プロジェクトのブートストラップ


目的

Docker イメージをビルドし、コンテナを起動して、Docker ネイティブのヘルスチェックと再試行戦略を使用した包括的な健全性検証を実行します。

対象範囲:

  • docker-compose.yml の設定を検出して検証する
  • Docker イメージをビルドする
  • 適切な起動順序でコンテナを起動する
  • ネイティブのヘルスチェックを使用してコンテナの健全性を検証する
  • アクセス URL とクリーンアップ手順を提示する

対象外:

  • アプリケーションコードのビルド(ln-781 が担当)
  • テストの実行(ln-782 が担当)
  • 単一ホストを超えるコンテナオーケストレーション(Kubernetes、Swarm)

使用するタイミング

シナリオこのスキルを使用
単独で実行可能はい
コンテナを単独で起動はい
開発環境のセットアップはい
本番環境へのデプロイいいえ。適切な CI/CD を使用してください

ワークフロー

ステップ 1:事前チェック

Docker 環境が使用可能な状態か確認します。

チェック失敗時の対応
Docker デーモンが実行中インストール手順を添えてエラーを報告
Docker Compose が利用可能エラーを報告し、インストールを提案
Compose ファイルが存在するエラーを報告し、想定される場所を列挙
必要なポートが空いている競合を報告し、代替案を提案
ディスク容量が十分空き容量が少ない場合(2GB 未満)は警告
ステップ 2:Compose 設定の解析

docker-compose.yml からサービス情報を抽出します。

情報目的
サービス名監視対象のコンテナを特定する
公開ポートチェックするポートを把握する
ヘルスチェック定義定義されている場合はネイティブのヘルスチェックを使用する
依存関係(depends_on)起動順序を把握する
ボリュームマウントパスの存在を確認する
ステップ 3:イメージのビルド

Compose ファイルで定義されているすべてのイメージをビルドします。

項目方針
ビルドコンテキストCompose ファイルのパスを使用する
ビルド引数Compose の設定から引き継ぐ
キャッシュ高速化のため Docker レイヤーキャッシュを使用する
失敗時ビルドエラーを完全なログとともに報告する
ステップ 4:コンテナの起動

適切なオーケストレーションでコンテナを起動します。

項目方針
起動順序depends_on と healthcheck の条件に従う
デタッチモードバックグラウンドで実行する
ネットワークCompose で定義されたネットワークを使用する
ボリューム定義されているすべてのボリュームをマウントする
ステップ 5:健全性の検証

適切な方法を使用して、すべてのコンテナが正常であることを確認します。

戦略の選択:

条件戦略
サービスに Compose 内で healthcheck: があるDocker ネイティブのヘルスステータスを使用する
サービスに depends_on: condition: service_healthy があるDocker のヘルスステータスを待つ
ヘルスチェックが定義されていない再試行付きの外部 HTTP プローブを使用する

再試行の設定:

パラメーター値理由
最大試行回数10起動に時間がかかるサービスに対応する
初期待機時間5sコンテナの起動時間を確保する
バックオフ指数(5、10、20、40s)サービスへの過度な負荷を避ける
最大総待機時間120s妥当な上限

ヘルスチェック方法:

方法使用する場面
Docker ヘルスステータスコンテナに healthcheck が定義されている場合
公開ポートへの HTTP GETヘルスチェックのない Web サービスの場合
コンテナ内での exec公開ポートのないサービスの場合
TCP ポートチェックデータベースやメッセージキューの場合
Step 6: 結果を報告する

構造化された結果をオーケストレーターに返します。

結果の構造:

フィールド説明
containersコンテナの状態オブジェクトの配列
healthChecksヘルスチェック結果の配列
accessUrlsサービス名からアクセス URL へのマップ
overallStatushealthy / unhealthy / partial
startupDuration起動からすべてが healthy になるまでの時間

コンテナ状態オブジェクト:

フィールド説明
nameコンテナ名
servicecompose のサービス名
statusrunning / exited / restarting
healthhealthy / unhealthy / starting / none
port公開ポート(ある場合)
startedAtコンテナの起動タイムスタンプ

ヘルスチェック結果:

フィールド説明
urlチェックした URL またはエンドポイント
statusHTTP ステータスコードまたはチェック結果
responseTime応答時間(ミリ秒)
healthyヘルス状態を示すブール値

エラー処理

エラーの種類対応
Docker デーモンが実行されていない起動手順とともに報告する
ポートがすでに使用中競合を報告し、先に docker compose down を実行するよう提案する
イメージのビルドに失敗ビルドログとともに報告する
コンテナが終了コンテナログとともに報告する
ヘルスチェックがタイムアウト最後に確認された状態とログを報告する
ネットワークに到達できないDocker ネットワークの設定を確認する

オプション

オプションデフォルト説明
keepRunningtrue検証後もコンテナを実行したままにする
stopAfterfalse検証成功後にコンテナを停止する
healthTimeout120healthy 状態になるまで待機する最大秒数
showLogstrue失敗時にコンテナログを表示する
buildFirsttrue起動前にイメージをビルドする
pullLatestfalseビルド前にベースイメージを取得する

クリーンアップ手順

レポートにクリーンアップ用のコマンドを記載します。

操作説明
コンテナを停止実行中のコンテナを停止し、データは保持する
コンテナとネットワークを削除ボリュームは残してコンテナをクリーンアップする
すべて削除ボリュームとイメージを含めて完全にクリーンアップする

重要なルール

  1. 利用可能な場合はネイティブのヘルスチェックを使用する — 外部プローブより信頼性が高くなります
  2. バックオフ付きの再試行を実装する — サービスの初期化には時間が必要です
  3. 失敗時は必ずログを収集する — デバッグに不可欠です
  4. ポートは compose ファイルから解析する — ポート番号をハードコードしないでください
  5. depends_on の順序を守る — データベースに依存するサービスでは不可欠です
Monitor との統合(Claude Code 2.1.98+)

必ず読んでください: references/monitor_integration_pattern.md を読み込みます

コンテナのヘルス確認には、Monitor を使用してコンテナログをストリーミングします。

パターンコマンドtimeout_ms
準備完了シグナルdocker compose logs -f 2>&1 | grep --line-buffered -iE 'ready|listening|healthy|started'healthTimeout * 1000
エラー監視docker compose logs -f 2>&1 | grep --line-buffered -iE 'error|fatal|panic|exit'healthTimeout * 1000

keepRunning が true で、継続的なログ監視が必要な場合は persistent: true を使用します。 代替手段:Monitor を利用できない場合は、sleep と curl によるヘルスチェックを使った再試行ループを使用します。


完了の定義

  • Docker 環境を確認済み
  • すべてのイメージのビルドに成功
  • すべてのコンテナが実行中
  • すべてのヘルスチェックに合格
  • アクセス URL を提示済み
  • 結果をオーケストレーターに返却済み

参考ファイル

  • 親:../ln-780-bootstrap-verifier/SKILL.md

バージョン: 2.0.0 最終更新日: 2026-01-10

コメント