setup-compose-stack
について
このClaudeスキルは、データベース、キャッシュ、ワーカーを備えたWebアプリケーションなど、一般的なマルチサービスアプリケーションスタック向けのDocker Compose構成を生成します。名前付きボリューム、ネットワーク、ヘルスチェック、環境管理といったオーケストレーション要素を扱います。開発環境のセットアップや、チーム間で再現可能なマルチサービスデプロイメントを作成する際にご利用ください。
クイックインストール
Claude Code
推奨npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/setup-compose-stackこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
設 Compose 之棧
為多服應用之棧配 Docker Compose,附庫、緩、工。
用時
- 行網應附庫與/或緩乃用
- 設多服之開發境乃用
- 並 API 與後台工乃用
- 跨團需可重之多服境乃用
入
- 必要:應之服(語、端口、入點)
- 必要:所需之輔服(庫、緩、隊等)
- 可選:開發 vs 生產之配
- 可選:自定服之既 Dockerfile
法
第一步:定核之棧
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "3000:3000"
environment:
DATABASE_URL: postgres://appuser:apppass@postgres:5432/appdb
REDIS_URL: redis://redis:6379
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_started
restart: unless-stopped
postgres:
image: postgres:16
environment:
POSTGRES_DB: appdb
POSTGRES_USER: appuser
POSTGRES_PASSWORD: apppass
volumes:
- pgdata:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U appuser -d appdb"]
interval: 5s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redisdata:/data
volumes:
pgdata:
redisdata:
得:docker compose up 啟諸服,應俟健庫。
第二步:增健察
健察使 depends_on 可用 condition: service_healthy:
services:
postgres:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U appuser -d appdb"]
interval: 5s
timeout: 5s
retries: 5
redis:
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
app:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 10s
timeout: 5s
retries: 3
start_period: 10s
第三步:配網
services:
app:
networks:
- frontend
- backend
postgres:
networks:
- backend
nginx:
networks:
- frontend
ports:
- "80:80"
networks:
frontend:
driver: bridge
backend:
driver: bridge
此隔庫於外直訪,而應橋二網。
第四步:管環境變
立 .env 文件(git-ignored):
POSTGRES_PASSWORD=secure_password_here
APP_SECRET=your_secret_key
於 compose 引:
services:
postgres:
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
app:
env_file:
- .env
立 .env.example(提交於 git):
POSTGRES_PASSWORD=changeme
APP_SECRET=changeme
第五步:增工服
services:
worker:
build:
context: .
dockerfile: Dockerfile
command: ["node", "src/worker.js"]
environment:
DATABASE_URL: postgres://appuser:apppass@postgres:5432/appdb
REDIS_URL: redis://redis:6379
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_started
restart: unless-stopped
deploy:
replicas: 2
第六步:以 profile 為選服
services:
app:
# always starts
build: .
mailhog:
image: mailhog/mailhog
ports:
- "8025:8025"
profiles:
- dev
adminer:
image: adminer
ports:
- "8080:8080"
profiles:
- dev
# Start core services only
docker compose up
# Start with dev tools
docker compose --profile dev up
第七步:為開發立 override
docker-compose.override.yml 自動合並:
services:
app:
build:
target: dev
volumes:
- .:/app
- /app/node_modules
environment:
NODE_ENV: development
DEBUG: "app:*"
command: ["npm", "run", "dev"]
第八步:建而行
# Build all images
docker compose build
# Start in background
docker compose up -d
# View logs
docker compose logs -f app
# Check service status
docker compose ps
# Stop and remove
docker compose down
# Stop and remove volumes (full reset)
docker compose down -v
得:諸服啟,健察過,應連庫與緩。
敗則:察 docker compose logs <service>。常患:端口衝、缺環變、健察超時。
驗
-
docker compose up啟諸服而無誤 - 庫與緩之健察過
- 應連諸依服
- 命名卷跨重啟存數
-
.env入 git-ignore;.env.example已提交 -
docker compose down潔止諸物 - profile 分開發器與生產服
陷
- 無健察:
depends_on而無condition: service_healthy唯俟容啟,非俟備 - 硬編密於 compose:用
.env或 Docker secret。永勿提交密 - 卷掛蓋:掛
.:/app蓋鏡中所建之node_modules。用匿之卷:/app/node_modules - 端口衝:察
docker compose ps與lsof -i :<port>為衝 version:鍵:Compose V2 忽version:鍵。新設略之- WSL 徑之患:自 WSL 掛 Windows 目用
/mnt/c/...徑
參
setup-docker-compose— R 特之 Docker Compose 配create-dockerfile— 寫 compose 所引之 Dockerfilecreate-multistage-dockerfile— 為棧建優之像configure-nginx— 加 Nginx 反向代理於棧
GitHub リポジトリ
関連スキル
content-collections
メタこのスキルは、Content Collections(Markdown/MDXファイルを型安全なデータコレクションに変換するTypeScriptファーストのツール)の本番環境でテストされた設定を提供します。Zodバリデーションによる型安全性を実現し、ブログ、ドキュメントサイト、コンテンツ重視のVite + Reactアプリケーション構築時にご利用ください。Viteプラグインの設定、MDXコンパイルから、デプロイ最適化、スキーマバリデーションまで、すべてを網羅しています。
polymarket
メタこのスキルは、開発者がPolymarket予測市場プラットフォームを活用したアプリケーション構築を可能にします。API統合による取引や市場データの取得に加え、WebSocketを介したリアルタイムデータストリーミングにより、ライブ取引や市場活動を監視できます。取引戦略の実装や、ライブ市場更新を処理するツールの作成にご利用ください。
creating-opencode-plugins
メタこのスキルは、開発者がコマンド、ファイル、LSP操作など25種類以上のイベントタイプにフックするOpenCodeプラグインを作成することを支援します。JavaScript/TypeScriptモジュール向けに、プラグイン構造、イベントAPI仕様、および実装パターンを提供します。カスタムイベント駆動ロジックでOpenCode AIアシスタントのライフサイクルをインターセプト、監視、または拡張する必要がある場合にご利用ください。
sglang
メタSGLangは、高性能なLLMサービングフレームワークであり、RadixAttentionプレフィックスキャッシュを活用したJSON、正規表現、エージェントワークフロー向けの高速で構造化された生成を特長とします。特にプレフィックスが繰り返されるタスクにおいて、大幅に高速な推論を実現し、複雑な構造化出力やマルチターン対話に最適です。制約付きデコードが必要な場合や、広範なプレフィックス共有を伴うアプリケーションを構築する場合は、vLLMなどの代替案ではなくSGLangを選択してください。
