Das Verständnis von Umgebungsvariablen in Docker Compose
Docker Compose ist ein leistungsstarkes Tool zur Definition und Verwaltung von Anwendungen mit mehreren Containern. Eines der Schlüsselmerkmale von Docker Compose ist die Möglichkeit, Umgebungsvariablen zu verwenden, um das Verhalten Ihrer Anwendung zu konfigurieren und anzupassen. Umgebungsvariablen spielen in Docker Compose eine entscheidende Rolle, da sie es Ihnen ermöglichen, die Konfiguration von Ihrem Anwendungs-Code zu trennen, was die Anwendung portabler und leichter zu verwalten macht.
Das Verständnis von Umgebungsvariablen
Umgebungsvariablen sind eine Reihe von Schlüssel-Wert-Paaren, die für Ihre Anwendung zur Laufzeit verfügbar sind. Sie bieten eine Möglichkeit, Konfigurationseinstellungen, sensible Informationen und andere Daten zu speichern und darauf zuzugreifen, die Ihre Anwendung für den korrekten Betrieb benötigt.
Im Kontext von Docker Compose können Umgebungsvariablen auf Dienstebene definiert werden, wodurch Sie das Verhalten einzelner Container in Ihrer Anwendung anpassen können. Diese Flexibilität ermöglicht es Ihnen, Ihre Anwendung einfach an verschiedene Umgebungen wie Entwicklung, Staging und Produktion anzupassen, ohne Ihren Anwendungs-Code ändern zu müssen.
Das Definieren von Umgebungsvariablen in Docker Compose
Um Umgebungsvariablen in Ihrer Docker Compose-Datei zu definieren, können Sie die Schlüsselwörter environment
oder env_file
verwenden. Das Schlüsselwort environment
ermöglicht es Ihnen, Umgebungsvariablen direkt in der Compose-Datei zu definieren, während das Schlüsselwort env_file
es Ihnen erlaubt, eine Datei mit den Umgebungsvariablen anzugeben.
Hier ist ein Beispiel, wie Sie Umgebungsvariablen mit dem Schlüsselwort environment
definieren können:
version: "3"
services:
web:
image: my-web-app
environment:
- DB_HOST=database
- DB_USER=myuser
- DB_PASSWORD=secretpassword
In diesem Beispiel sind für den web
-Dienst drei Umgebungsvariablen definiert: DB_HOST
, DB_USER
und DB_PASSWORD
.
Alternativ können Sie das Schlüsselwort env_file
verwenden, um eine Datei mit den Umgebungsvariablen anzugeben:
version: "3"
services:
web:
image: my-web-app
env_file:
- web-app.env
In diesem Fall sind die Umgebungsvariablen in einer Datei namens web-app.env
definiert, die wie folgt aussehen könnte:
DB_HOST=database
DB_USER=myuser
DB_PASSWORD=secretpassword
Beide Methoden sind gültig und können je nach Ihren Vorlieben und der Komplexität Ihrer Umgebungsvariablen austauschbar verwendet werden.
Der Zugriff auf Umgebungsvariablen in Ihrer Anwendung
Sobald Sie die Umgebungsvariablen in Ihrer Docker Compose-Datei definiert haben, kann Ihre Anwendung darauf zugreifen, indem Sie den entsprechenden Mechanismus für Ihre Programmiersprache oder Ihr Framework verwenden. Beispielsweise können Sie in einer Node.js-Anwendung auf die Umgebungsvariablen über das process.env
-Objekt zugreifen.
const dbHost = process.env.DB_HOST;
const dbUser = process.env.DB_USER;
const dbPassword = process.env.DB_PASSWORD;
Ebenso können Sie in einer Python-Anwendung das os.environ
-Modul verwenden, um auf die Umgebungsvariablen zuzugreifen.
import os
db_host = os.environ.get('DB_HOST')
db_user = os.environ.get('DB_USER')
db_password = os.environ.get('DB_PASSWORD')
Durch die Verwendung von Umgebungsvariablen können Sie die Konfiguration Ihrer Anwendung vom Code trennen, was die Anwendung flexibler und leichter zu verwalten macht.