docker-compose-setup について
docker-compose-setupは、開発・本番環境向けのDocker Compose設定を設計するスキルです。サービスの依存関係や環境管理、トラブルシューティングを扱います。
主な機能
- 01サービスと依存関係の設定
- 02ヘルスチェックの設定
- 03環境変数と設定上書きの管理
- 04サービスプロファイルの利用
- 05Composeファイルの検証と問題解決
活用シーン
- 01開発・本番環境向けComposeファイルの作成
- 02開発環境と本番環境の設定分離
- 03サービス起動やヘルスチェックの問題調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pluginagentmarketplace/ custom-plugin-docker --skill docker-compose-setupインストール後、Claude Code で/docker-compose-setupを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/config.yamldocker-compose-template.yamlschema.jsonreferences/GUIDE.mdPATTERNS.mdscripts/validate.py詳細
Docker Compose セットアップスキル
サービスの依存関係、ヘルスチェック、環境管理を活用し、複数コンテナのアプリケーションオーケストレーションに Docker Compose を使いこなします。
目的
開発環境と本番環境向けに、適切なサービスオーケストレーションを備えた Docker Compose ファイルを設計・設定します。
パラメーター
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| services | 配列 | いいえ | - | 設定するサービスの一覧 |
| environment | 列挙型 | いいえ | dev | dev/staging/prod |
| include_monitoring | ブール値 | いいえ | false | 監視サービスを追加します |
最新の Compose ファイル(2024-2025)
注:version フィールドは非推奨です。services: から直接始めてください。
services:
frontend:
build:
context: ./frontend
target: production
ports:
- "80:80"
depends_on:
backend:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/health"]
interval: 30s
timeout: 10s
retries: 3
restart: unless-stopped
backend:
build: ./backend
expose:
- "3000"
environment:
DATABASE_URL: postgres://user:${DB_PASSWORD}@database:5432/app
depends_on:
database:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 10s
timeout: 5s
retries: 5
database:
image: postgres:16-alpine
volumes:
- db_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 5s
retries: 5
volumes:
db_data:
環境管理
ベース + オーバーライドパターン
# docker-compose.yaml (base)
services:
app:
image: myapp:latest
# docker-compose.override.yaml (dev - auto-loaded)
services:
app:
build: .
volumes:
- ./src:/app/src
environment:
- DEBUG=true
# docker-compose.prod.yaml (production)
services:
app:
deploy:
replicas: 3
restart: always
# Development (loads override automatically)
docker compose up
# Production
docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d
環境変数
# .env file (auto-loaded)
DB_PASSWORD=secret123
APP_VERSION=1.2.3
# Using in compose
environment:
- DB_PASSWORD=${DB_PASSWORD}
- VERSION=${APP_VERSION:-latest} # Default value
サービスプロファイル
services:
app:
image: myapp
# Only with --profile debug
debugger:
image: debug-tools
profiles:
- debug
# Only with --profile testing
test-db:
image: postgres:alpine
profiles:
- testing
docker compose up # app only
docker compose --profile debug up # app + debugger
よく使うコマンド
# Start services
docker compose up -d
# Rebuild and start
docker compose up -d --build
# View logs
docker compose logs -f backend
# Scale service
docker compose up -d --scale backend=3
# Stop and clean
docker compose down -v
# Validate config
docker compose config
エラー処理
よくあるエラー
| エラー | 原因 | 解決策 |
|---|---|---|
undefined service | 依存関係が不足しています | サービスを定義します |
yaml syntax error | インデント | YAML を修正します |
port already in use | ポートの競合 | ポートを変更します |
healthcheck failing | サービスの準備ができていません | start_period を増やします |
フォールバック戦略
docker compose configで検証します- サービスを個別に起動します
--no-depsを使用して依存関係をスキップします
トラブルシューティング
デバッグ用チェックリスト
- 有効な YAML ですか?
docker compose config - イメージを利用できますか?
docker compose pull - 依存関係は正常ですか? ヘルスチェックを確認してください
- 環境は設定されていますか? .env ファイルを確認してください
ヘルスチェックのデバッグ
# Check health status
docker inspect --format='{{json .State.Health}}' <container>
# View health logs
docker inspect --format='{{range .State.Health.Log}}{{.Output}}{{end}}' <container>
使用方法
Skill("docker-compose-setup")
関連スキル
- docker-networking
- docker-volumes
- docker-production
コメント
Markdown 対応