docker-compose-skill について
Docker Compose でローカルの複数サービス開発環境を構築・管理するスキルです。一般的なサービスの Compose テンプレートに加え、ヘルスチェック、環境変数、ホットリロード、サービス操作を案内します。
主な機能
- 01一般的なサービス向け Compose テンプレート
- 02データベースとキャッシュのヘルスチェック
- 03.env による環境変数管理
- 04ボリュームマウントによるホットリロード
- 05ログとサービス操作コマンドの案内
活用シーン
- 01ローカルのデータベースとキャッシュの起動
- 02依存サービスのヘルスチェック設定
- 03アプリコードのマウントとホットリロード
- 04サービス停止とボリューム削除
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ scientiacapital/ skills --skill docker-compose-skillインストール後、Claude Code で/docker-compose-skillを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
config.jsonreference/compose-patterns.mddev-workflow.mdnetworking.mdservices.md詳細
Docker Compose を使用して、ローカルのマルチサービス開発環境をセットアップおよび管理します。PostgreSQL、Redis、MongoDB などのサービス向けに、compose.yml テンプレート、ヘルスチェック、ホットリロード、および必須コマンドを提供します。
<quick_start>
- お使いのスタック(Postgres、Redis など)に合わせて、以下の compose.yml テンプレートをコピーします
- データベースの認証情報を含む
.envファイルを作成します docker compose up -dを実行してサービスを起動しますdocker compose logs -fを使用して監視します </quick_start>
<success_criteria>
- すべてのサービスが
docker compose up -dで起動し、healthy 状態に到達する - すべてのデータベース/キャッシュサービスにヘルスチェックが構成されている
- 環境変数が
.envに外部化されている(compose.yml にシークレットがハードコードされていない) - ボリュームマウントによるアプリケーションコードのホットリロードが機能する
docker compose down -vで、すべてのコンテナとボリュームがクリーンに削除される </success_criteria>
Docker Compose スキル
Docker Compose を使用したマルチサービス構成のローカル開発環境です。
クイックスタート
一般的なサービス
| サービス | イメージ | デフォルトポート |
|---|---|---|
| PostgreSQL | postgres:16-alpine | 5432 |
| Redis | redis:7-alpine | 6379 |
| MongoDB | mongo:7 | 27017 |
| MySQL | mysql:8 | 3306 |
基本的な compose.yml
services:
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: ${DB_USER:-app}
POSTGRES_PASSWORD: ${DB_PASSWORD:-secret}
POSTGRES_DB: ${DB_NAME:-app_dev}
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-app}"]
interval: 5s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
volumes:
postgres_data:
redis_data:
必須コマンド
# Start services (detached)
docker compose up -d
# Start with logs visible
docker compose up
# View logs
docker compose logs -f [service]
# Shell into container
docker compose exec db psql -U app
# Stop and remove containers
docker compose down
# Stop and remove volumes (full reset)
docker compose down -v
# Rebuild without cache
docker compose build --no-cache
環境変数
プロジェクトのルートに .env ファイルを作成します:
# .env
DB_USER=app
DB_PASSWORD=secret
DB_NAME=myapp_dev
REDIS_URL=redis://localhost:6379
compose.yml 内で参照します:
environment:
POSTGRES_USER: ${DB_USER:-app}
ヘルスチェック
サービス依存関係には必ずヘルスチェックを追加します:
services:
db:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-app}"]
interval: 5s
timeout: 5s
retries: 5
app:
depends_on:
db:
condition: service_healthy
ホットリロードのセットアップ
開発用にソースコードをマウントします:
services:
app:
build: .
volumes:
- .:/app # Source code
- /app/node_modules # Preserve node_modules
environment:
- NODE_ENV=development
オプションサービスのプロファイル
services:
mailhog:
image: mailhog/mailhog
profiles: ["mail"]
ports:
- "8025:8025"
# Start with: docker compose --profile mail up
参照ファイル
reference/compose-patterns.md- 一般的な compose ファイルのパターンreference/services.md- データベース、キャッシュ、キューのサービス構成reference/networking.md- ポート、ネットワーク、ボリュームreference/dev-workflow.md- 開発ワークフローのコマンド
Emit Outcome Sidecar
最後のステップとして、~/.claude/skill-analytics/last-outcome-docker-compose-skill.json に書き込みます:
{"ts":"[UTC ISO8601]","skill":"docker-compose-skill","version":"1.0.0","variant":"default",
"status":"[success|partial|error]","runtime_ms":[estimated ms from start],
"metrics":{"services_configured":[n],"containers_running":[n]},
"error":null,"session_id":"[YYYY-MM-DD]"}
一部のステージが失敗したものの結果が生成された場合は、status に「partial」を使用します。出力がまったく生成されなかった場合にのみ「error」を使用します。
コメント
Markdown 対応