新しいプロジェクトを始めるときにコピーする雛形。
compose.yaml
services:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
depends_on:
db:
condition: service_healthy
db:
image: postgres:17
environment:
POSTGRES_PASSWORD: dev
volumes:
- db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
retries: 5
volumes:
db-data:
ポイント
depends_onのcondition: service_healthyで DB の起動完了を待てる(healthcheck とセットで使う)- /app/node_modulesの匿名ボリュームで、ホスト側のnode_modulesがコンテナを汚染するのを防ぐ- データは名前付きボリュームに置き、
docker compose down -vで意図的に消すまで保持する
よく使うコマンド
docker compose up -d --build
docker compose logs -f app
docker compose exec db psql -U postgres
Naxii の置き場