ファイル作成中級
Docker Compose 開発環境の構築
アプリ + DB + キャッシュをまとめて起動できる docker-compose.yml を生成するプロンプト。
監修: 平原尚樹
株式会社BlueAI 代表取締役CEO / ソフトウェアエンジニア / プロダクトエンジニア / Google Cloud Architect / 元AIスタートアップ(Doorkel)
監修: 酒井歩乃加
早稲田大学文化構想学部卒業 / フリーランス編集者・ライター / 元マイベスト編集ディレクター / SEO対策記事・取材記事執筆
こんな課題を解決
新メンバーのオンボーディングで DB やキャッシュのセットアップに半日かかっている。compose 一発で完結する開発環境にしたい。
プロンプト
Claude Code に入力
このリポジトリ用の docker-compose.yml を作成してください。
## 構成
- app: Node 20 / bun ベースのフロント + API
- mysql: 8.0、初期スキーマは ./packages/db/init.sql でロード
- redis: 7、永続化は appendonly
- minio: S3 互換、開発用ファイル保存
## 要件
1. ローカル開発で hot reload が効くよう volumes を設定
2. .env.docker を読み込み、ホスト .env と分離
3. healthcheck を各サービスに付与
4. profile 機能で「最小構成(app + mysql)」と「フル構成」を切替
5. Makefile に make up / make down / make logs を追加
## 守ること
- 本番では使わないこと前提のコメントを冒頭に明記
- ボリュームの prefix をプロジェクト名で揃える
- 不要なポート公開はしない(外部に晒さない)実行結果の例
Claude Code が以下を生成します。 - docker-compose.yml(80 行、profiles 含む) - .env.docker.example - Makefile 追加ターゲット 3 個 - README の Quick Start セクション更新案
コツ・ポイント
- Apple Silicon 環境では platform 指定で起動失敗を回避
- mysql の charset / collation はアプリと揃える
- minio のバケット作成は init script 化すると楽
- 本番イメージは別の Dockerfile.prod で分離する