Docker Dockerfile

Version datée du 3 juin 2025 à 12:56 par Geo (discussion | contributions) (🧠 Résumé)
(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