Docker Dockerfile
Apparence
Variable Environnement
❌ On ne peut pas utiliser directement les variables du fichier .env dans un Dockerfile.
Le fichier .env est interprété par Docker Compose, pas par le moteur Docker lui-même. Cela signifie que :
- Les variables définies dans
.envpeuvent être utilisées dans ledocker-compose.yml. - Mais elles ne sont pas automatiquement injectées dans le contexte de build du
Dockerfile.
✅ Comment utiliser des variables .env dans un Dockerfile ?
Tu as deux options :
Option 1 : Passer les variables via --build-arg
- Dans ton
.env:
APP_ENV=production
- Dans ton
docker-compose.yml:
services:
app:
build:
context: .
args:
APP_ENV: ${APP_ENV}
- Dans ton
Dockerfile:
ARG APP_ENV
ENV APP_ENV=${APP_ENV}
Cela permet d’utiliser la variable dans le
Dockerfilecomme une variable d’environnement.
Option 2 : Utiliser ENV directement dans le Dockerfile (moins dynamique)
Tu peux aussi définir des variables en dur dans le Dockerfile, mais ce n’est pas lié au .env.
🧠 Résumé
| Fichier | Peut utiliser .env ?
|
Utilisation |
|---|---|---|
docker-compose.yml
|
✅ Oui | ${VAR_NAME}
|
Dockerfile
|
❌ Non (directement) | Utiliser ARG + args: dans Compose
|