Ceci est un mémo personnel.
L'env_file et l'environnement sont tous deux dans docker-compose.yml et ** spécifient les variables d'environnement ** lors de l'exécution.
env_file ** lit le fichier contenant les variables d'environnement **.
Pour l'environnement, ** décrivez les variables directement dans docker-compose.yml **.
env_exemple de fichier
env_file:
- .env
- .env.prd
- .env.local.aws
- ./common.env
- ./apps/web.env
exemple d'environnement
environment:
- NODE_ENV=development
- PORT=80
- MIGRATE=true
- USER=${USER}
- AWS_REGION=ap-northeast-1
Si la même variable d'environnement est spécifiée pour chacun, ** le paramètre d'environnement est prioritaire sur env_file **.
Si plusieurs fichiers sont spécifiés dans env_file ou si plusieurs variables dupliquées sont spécifiées dans l'environnement, ** le dernier a la priorité **.
Si l'hôte a un jeu de variables d'environnement, cette valeur est prioritaire.
·Priorité:
(1) Host> (2) environment> (3) env_file> (4) ENV
* de DockerfileÉtant donné que la variable d'environnement hôte a la priorité la plus élevée, si la variable d'environnement hôte est appliquée, il est nécessaire de modifier le nom de la variable d'environnement du côté docker.
Le chemin du fichier spécifié par env_file est basé sur le répertoire dans lequel docker-compose est exécuté.
** ▼ Comment spécifier un fichier **
env_file: .env
En cas de multiple
env_file:
- .env
- .env.prd
- .env.local.aws
- ./common.env
- ./apps/web.env
Dans un cas
env_file:
- .env
** ▼ Il existe plusieurs façons de nommer les fichiers **
nom de fichier | Contenu |
---|---|
.env | Nom de fichier par défaut |
.env.local.aws | Diriger.env est attaché |
common.env | derrière.env est attaché |
./apps/web.env | Fichiers dans la hiérarchie inférieure |