mcpField
D
devcontainer

devcontainer

github.com/jwyniaクラウド・DevOps179315 回インストール35 週間前に更新
リポジトリ

devcontainer について

devcontainerは、開発コンテナとDocker開発環境の問題を診断するスキルです。再現性があり起動の速い環境づくりや、VS CodeとGitHub Codespacesの差異への対処を支援します。

主な機能

  1. 01コンテナの起動と設定問題の診断
  2. 02Dockerfileのビルドとキャッシュの改善
  3. 03VS CodeとCodespacesの差異確認
  4. 04Docker Composeによる複数サービス環境の計画
  5. 05設定分析・検証スクリプトの利用

活用シーン

  1. 01新規プロジェクトの開発コンテナ構築
  2. 02コンテナ起動の遅さの調査
  3. 03VS CodeとCodespacesの挙動差の解消
  4. 04データベースやキャッシュを含む開発環境の設定

インストール

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

$npx skills add https://github.com/jwynia/agent-skills --skill devcontainer

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
devcontainer-compose.md
devcontainer-dockerfile.md
devcontainer-simple.md
references/
feature-catalog.md
scripts/
analyze-devcontainer.ts
scan-image.ts
validate-dockerfile.ts

詳細

Devcontainer 診断

devcontainer と Docker の開発環境に関する問題を診断します。VS Code、GitHub Codespaces、チームメンバー間で一貫して動作する、再現性が高く、すばやく起動する開発環境の構築を支援します。

このスキルを使用する場面

次の場合にこのスキルを使用します。

  • 新しい devcontainer をセットアップするとき
  • コンテナーの起動が遅すぎるとき
  • 設定エラーや競合があるとき
  • VS Code と Codespaces で動作が異なるとき
  • 複数サービスの開発環境が必要なとき

次の場合はこのスキルを使用しないでください。

  • アプリケーションコードを書くとき
  • 本番環境にデプロイするとき
  • CI/CD パイプラインを設定するとき

基本原則

開発コンテナーは、すぐに開発を始められる環境を提供する必要があります。設定の選択はすべて、起動時間、再現性、チームへの導入に影響します。こうしたトレードオフを明確にしてください。

診断状態

DV0: Devcontainer の方針がない

症状: 手動でセットアップしている、「README を確認してください」と案内している、あるマシンでは動作するが他のマシンでは動作しない

対処方法:

  • まずはビルド済みの devcontainer ベースイメージを使用します
  • assets/devcontainer-simple.md テンプレートを使用します
DV1: コンテナーの起動が遅い

症状: 起動に5分以上かかる、postCreateCommand が重い、再ビルドを避けている

主な質問:

  • 実際の起動時間はどのくらいですか?
  • postCreateCommand には何が含まれていますか?
  • prebuilds を使用していますか?

対処方法:

  • npm install/pip install を Dockerfile に移動します(キャッシュされます)
  • mcr.microsoft.com/devcontainers/* ベースイメージを使用します
  • チームのリポジトリに prebuilds を設定します
  • scripts/analyze-devcontainer.ts を実行します
DV2: 設定の問題

症状: JSON エラーが発生する、VS Code が接続できない、機能が競合している

チェックリスト:

  • devcontainer.json が JSON の検証に合格する
  • image、build.dockerfile、dockerComposeFile のうち1つだけを使用している
  • 機能に互換性があり、順序も正しい
  • 拡張機能に正しい publisher.extension-name 形式を使用している
DV3: 環境の同等性に関する問題

症状: VS Code では動作するが Codespaces では失敗する(またはその逆)

よくある問題:

問題ローカルの VS CodeCodespaces
Docker ソケット通常は利用可能Docker-in-Docker が必要
シークレット.env ファイルを使用可能Codespaces のシークレットを使用
ファイル監視ネイティブポーリングが必要な場合あり
DV4: 複数サービスの複雑さ

症状: データベース/キャッシュ/キューが必要、サービス間で通信できない

対処方法:

  • Docker Compose との統合を使用します
  • 永続化には名前付きボリュームを使用します
  • サービスの準備状況を確認するヘルスチェックを設定します
  • assets/devcontainer-compose.md テンプレートを使用します
DV5: Dockerfile の問題

症状: ビルドに失敗する、イメージが巨大、キャッシュされない

ベストプラクティス:

FROM mcr.microsoft.com/devcontainers/base:ubuntu

# Dependencies first (cached)
RUN apt-get update && apt-get install -y \
    build-essential && rm -rf /var/lib/apt/lists/*

# Copy deps then install (cached if deps unchanged)
COPY package*.json ./
RUN npm install

# Code last (changes frequently)
COPY . .
DV6: Devcontainer の検証済み

指標:

  • 起動時間が2分未満
  • VS Code と Codespaces の両方で動作する
  • 新しい開発者が30分以内に作業を開始できる

利用可能なスクリプト

スクリプト目的使用方法
analyze-devcontainer.ts問題と最適化の機会を見つけるdeno run --allow-read scripts/analyze-devcontainer.ts
validate-dockerfile.tsDockerfile のベストプラクティスを確認するdeno run --allow-read scripts/validate-dockerfile.ts
scan-image.ts脆弱性をスキャンする(Trivy をラップ)deno run --allow-run scripts/scan-image.ts [image]

アンチパターン

あれもこれも詰め込む

「念のため」とすべてのツールをインストールすると、起動に10分以上かかります。 対処法: 最小構成から始めます。必要になったものだけを追加します。

postCreateCommand に詰め込みすぎる

すべてを postCreateCommand に入れると、毎回実行されます。 対処法: 安定した処理は Dockerfile に移動します。

スノーフレークコンテナー

実行中のコンテナー内で手動変更を加えます。 対処法: 変更はすべて設定ファイルに記述します。

テンプレート

  • assets/devcontainer-simple.md - 基本的な単一コンテナーのセットアップ
  • assets/devcontainer-dockerfile.md - カスタム Dockerfile を使用する方法
  • assets/devcontainer-compose.md - 複数サービスのセットアップ

関連スキル

  • system-design - 複数サービスのアーキテクチャは Compose の設定に役立ちます
  • pwa-development - PWA ツールチェーンに一貫した環境を提供します

コメント