Docker Dockerfile

Version datée du 3 juin 2025 à 12:54 par Geo (discussion | contributions) (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... »)
(diff) ← Version précédente | Version actuelle (diff) | Version suivante → (diff)

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 .env peuvent être utilisées dans le docker-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

  1. Dans ton .env :
APP_ENV=production
  1. Dans ton docker-compose.yml :
services:
  app:
    build:
      context: .
      args:
        APP_ENV: ${APP_ENV}
  1. Dans ton Dockerfile :
ARG APP_ENV
ENV APP_ENV=${APP_ENV}

Cela permet d’utiliser la variable dans le Dockerfile comme 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