docker-composeでEnvを使用する
docker-compose.yamlで.envに乗っているキーを使用する。
例えば、.envが以下の時
DATABASE_URL=postgresql://myuser:mypassword@db:3000composeは以下のようになる。
services:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
environment:
DATABASE_URL: ${DATABASE_URL} //ここ
depends_on:
db:
condition: service_healthy
db:
image: postgres:15-alpine
env_file:
- .env
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U myuser -d pdf_analyzer"]
interval: 5s
timeout: 5s
retries: 5
networks:
- app-network
networks:
app-network:
driver: bridge環境変数が少ない場合はこれでもいいが、多くなったら以下のようにも書くことができる。
services:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
env_file: //ここ
- .env
depends_on:
db:
condition: service_healthy
networks:
- app-network
db:
image: postgres:15-alpine
env_file:
- .env
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U myuser -d pdf_analyzer"]
interval: 5s
timeout: 5s
retries: 5
networks:
- app-network
networks:
app-network:
driver: bridge