« Docker Dockerfile » : différence entre les versions
Apparence
Page créée avec « == Variable Environnement == <span id="on-ne-peut-pas-utiliser-directement-les-variables-du-fichier-.env-dans-un-dockerfile."></span> === ❌ '''On ne peut pas utiliser directement les variables du fichier <code>.env</code> dans un <code>Dockerfile</code>.''' === Le fichier <code>.env</code> est '''interprété par Docker Compose''', '''pas''' par le moteur Docker lui-même. Cela signifie que : * Les variables définies dans <code>.env</code> peuvent être uti... » |
|||
| Ligne 56 : | Ligne 56 : | ||
=== 🧠 Résumé === | === 🧠 Résumé === | ||
{| | {| class="wikitable" | ||
!width="30%"| Fichier | !width="30%"| Fichier | ||
!width="45%"| Peut utiliser <code>.env</code> ? | !width="45%"| Peut utiliser <code>.env</code> ? | ||
Dernière version du 3 juin 2025 à 12:56
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
|