mcpField
C
compose

compose

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

compose について

compose は、マルチコンテナアプリ向けの Docker Compose 設定を生成するスキルです。開発・本番環境の構築で、サービス、ネットワーク、ボリューム、ヘルスチェック、依存関係、環境設定をまとめて扱います。

主な機能

  1. 01アプリケーションサービスの定義
  2. 02ネットワークとボリュームの設定
  3. 03ヘルスチェックと依存関係の設定
  4. 04環境設定の管理
  5. 05一般的なサービス構成の利用

活用シーン

  1. 01新規アプリ用のComposeファイル作成
  2. 02データベースやキャッシュサービスの追加
  3. 03開発・本番環境の設定

インストール

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

$npx skills add https://github.com/mwguerra/claude-code-plugins --skill compose

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

詳細

Docker Compose 設定スキル

概要

このスキルは、マルチコンテナーアプリケーション用の Docker Compose 設定を生成します。以下を含む、適切に構成された Compose ファイルを作成します。

  • サービス定義
  • ネットワーク設定
  • ボリューム管理
  • ヘルスチェック
  • 依存関係
  • 環境設定

アクティベーション

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

  • 新しい Compose ファイルを作成する場合
  • 既存の Compose にサービスを追加する場合
  • コンテナーオーケストレーションを設定する場合
  • 開発環境または本番環境を構築する場合

プロセス

1. 要件を把握する

以下の情報を収集します。

  • 必要なサービス(web、api、database、cache など)
  • 環境(開発/本番)
  • ネットワークの要件(内部、外部、SSL)
  • データ永続化の要件
  • スケーリングの要件
2. ドキュメントを参照する

関連するドキュメントを読みます。

  • 03-compose-fundamentals.md:構成
  • 04-networking.md:ネットワーク
  • 05-databases.md:データベースサービス
  • 06-services.md:依存関係
  • 08-volumes.md:データ永続化
3. 設定を生成する

ベストプラクティスに従って Compose ファイルを作成します。

# Modern compose (no version field)
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
    depends_on:
      db:
        condition: service_healthy
    networks:
      - frontend
      - backend
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3

  db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: ${DB_USER}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: ${DB_NAME}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    networks:
      - backend
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${DB_USER}"]
      interval: 10s
      timeout: 5s
      retries: 5

volumes:
  postgres_data:

networks:
  frontend:
  backend:
    internal: true

サービスのパターン

Web アプリケーション
services:
  web:
    build: .
    ports:
      - "80:80"
    depends_on:
      - api
API サービス
services:
  api:
    build: ./api
    expose:
      - "3000"
    environment:
      - DATABASE_URL=postgresql://user:pass@db:5432/app
    depends_on:
      db:
        condition: service_healthy
データベースサービス
services:
  db:
    image: postgres:16-alpine
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    healthcheck:
      test: ["CMD-SHELL", "pg_isready"]
      interval: 10s
      retries: 5
キャッシュサービス
services:
  redis:
    image: redis:7-alpine
    command: redis-server --appendonly yes
    volumes:
      - redis_data:/data
バックグラウンドワーカー
services:
  worker:
    build: .
    command: npm run worker
    depends_on:
      - db
      - redis

ネットワークのパターン

内部データベースネットワーク
networks:
  backend:
    internal: true  # No external access
外部共有ネットワーク
networks:
  proxy:
    external: true
    name: traefik_proxy

ボリュームのパターン

名前付きボリューム
volumes:
  postgres_data:
バインドマウント(開発)
volumes:
  - ./src:/app/src
匿名ボリューム
volumes:
  - /app/node_modules

環境設定のパターン

直接値を指定
environment:
  - NODE_ENV=production
.env ファイルから指定
env_file:
  - .env
デフォルト値を指定
environment:
  - DB_HOST=${DB_HOST:-localhost}

出力

生成される Compose ファイルには以下が含まれます。

  • 必要なすべてのサービス
  • 適切なネットワーク設定
  • ボリューム定義
  • ヘルスチェック
  • 依存関係の管理
  • 環境設定
  • 複雑な設定に関するコメント

コメント