Gérer et utiliser les variables d'environnement
Accéder aux variables d'environnement dans les conteneurs
Une fois que vous avez défini des variables d'environnement dans votre Dockerfile, vous pouvez y accéder à l'intérieur du conteneur en cours d'exécution en utilisant la syntaxe standard du shell. Par exemple, dans un script Bash, vous pouvez accéder à la valeur de la variable d'environnement DB_HOST
comme ceci :
echo "Database host: $DB_HOST"
Vous pouvez également utiliser des variables d'environnement dans votre code d'application, selon le langage de programmation et le framework que vous utilisez.
Remplacer les variables d'environnement lors de l'exécution
Lorsque vous exécutez un conteneur Docker, vous pouvez remplacer les variables d'environnement définies dans le Dockerfile en utilisant le drapeau --env
ou -e
. Cela vous permet de personnaliser facilement le comportement de votre conteneur sans avoir à reconstruire l'image.
docker run -e DB_HOST=192.168.1.100 -e DB_PASSWORD=newpassword myapp
Dans cet exemple, les variables d'environnement DB_HOST
et DB_PASSWORD
sont remplacées lors de l'exécution, prenant le pas sur les valeurs définies dans le Dockerfile.
Gérer les variables d'environnement avec Docker Compose
Si vous utilisez Docker Compose pour gérer votre application, vous pouvez définir des variables d'environnement dans la section environment
de votre fichier docker-compose.yml
. Cela vous permet de centraliser la configuration de toute votre pile d'application.
version: "3"
services:
web:
image: myapp
environment:
DB_HOST: mysql
DB_PORT: 3306
DB_USER: myuser
DB_PASSWORD: secret
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: secret
Dans cet exemple, les variables d'environnement pour le service web
sont définies dans la section environment
, et le service mysql
a également ses propres variables d'environnement définies.
graph TD
A[Docker Compose] --> B[Environment Variables]
B --> C[Docker Containers]
C --> D[Applications]
En gérant les variables d'environnement de cette manière, vous pouvez facilement mettre à l'échelle votre application, remplacer des services et maintenir une configuration cohérente dans différents environnements.