compose について
compose は、マルチコンテナアプリ向けの Docker Compose 設定を生成するスキルです。開発・本番環境の構築で、サービス、ネットワーク、ボリューム、ヘルスチェック、依存関係、環境設定をまとめて扱います。
主な機能
- 01アプリケーションサービスの定義
- 02ネットワークとボリュームの設定
- 03ヘルスチェックと依存関係の設定
- 04環境設定の管理
- 05一般的なサービス構成の利用
活用シーン
- 01新規アプリ用のComposeファイル作成
- 02データベースやキャッシュサービスの追加
- 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 ファイルには以下が含まれます。
- 必要なすべてのサービス
- 適切なネットワーク設定
- ボリューム定義
- ヘルスチェック
- 依存関係の管理
- 環境設定
- 複雑な設定に関するコメント
コメント
Markdown 対応