Umgebungsvariablen und Konfiguration in Compose
Verwendung von Umgebungsvariablen in docker-compose.yml
Umgebungsvariablen ermöglichen flexible und wiederverwendbare Docker-Compose-Konfigurationen. Durch das Definieren von Variablen vermeiden Sie das Festschreiben von Werten wie Ports, Image-Tags oder Zugangsdaten direkt in Ihrer docker-compose.yml-Datei. Stattdessen verweisen Sie auf diese Variablen, und Docker Compose ersetzt deren Werte zur Laufzeit. Dieser Ansatz ist besonders nützlich, wenn dieselbe Anwendung in verschiedenen Umgebungen wie Entwicklung, Test oder Produktion bereitgestellt wird.
Um Umgebungsvariablen in Ihrer Compose-Datei zu definieren und zu verwenden, gehen Sie wie folgt vor:
- Speichern Sie Umgebungsvariablen in einer
.env-Datei im selben Verzeichnis wie Ihredocker-compose.yml; - Verweisen Sie in Ihrer Compose-Datei mit der Syntax
${VARIABLE_NAME}auf die Variablen; - Überschreiben Sie Variablen, indem Sie sie direkt in der Shell oder als Teil Ihrer CI/CD-Pipeline übergeben.
Angenommen, Sie möchten das Datenbankpasswort und den Anwendungsport über Umgebungsvariablen konfigurieren. Erstellen Sie eine .env-Datei mit folgendem Inhalt:
DB_PASSWORD=supersecret
APP_PORT=8080
In Ihrer docker-compose.yml referenzieren Sie diese Variablen wie folgt:
version: "3.8"
services:
web:
image: myapp:latest
ports:
- "${APP_PORT}:80"
environment:
- DB_PASSWORD=${DB_PASSWORD}
Wenn Sie docker-compose up ausführen, ersetzt Docker Compose die Werte aus der .env-Datei in der Konfiguration. Diese Methode hält sensible oder umgebungsspezifische Daten aus Ihrer Compose-Datei heraus und macht Ihr Setup portabler.
Verwaltung von Geheimnissen und sensiblen Daten in Compose-Dateien
Obwohl Umgebungsvariablen praktisch sind, sind sie nicht immer die sicherste Methode, um sensible Informationen wie Passwörter, API-Schlüssel oder Zertifikate zu verwalten. Umgebungsvariablen können unter Umständen über Protokolle, Prozesslisten oder Versionskontrolle offengelegt werden, wenn sie nicht sorgfältig behandelt werden. Zur Verbesserung der Sicherheit können Sie verschiedene Techniken zur Verwaltung von Geheimnissen in Docker Compose nutzen:
- Speichern Sie sensible Werte in einer separaten
.env-Datei und stellen Sie sicher, dass diese Datei mit.gitignorevon der Versionskontrolle ausgeschlossen wird; - Verwenden Sie die Unterstützung von Docker Compose für Docker-Secrets, wenn Sie mit Docker Swarm bereitstellen. Damit können Sie Geheimnisse sicher als Dateien innerhalb von Containern bereitstellen;
- Referenzieren Sie Geheimnisse als Dateien auf dem Host und binden Sie sie mit dem Schlüssel
volumesin Ihrer Compose-Datei in den Container ein.
Beispiel: Um ein Datenbankpasswort nicht offenzulegen, speichern Sie es in einer Datei namens db_password.txt und binden Sie diese in den Container ein:
services:
db:
image: postgres:latest
volumes:
- ./db_password.txt:/run/secrets/db_password
environment:
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
Dieser Ansatz hält das eigentliche Geheimnis aus der Compose-Datei und den Umgebungsvariablen heraus und reduziert das Risiko einer versehentlichen Offenlegung. Überprüfen Sie stets Ihre Konfiguration und Arbeitsabläufe, um sicherzustellen, dass Geheimnisse geschützt sind, und geben Sie niemals sensible Daten in die Versionskontrolle.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 7.14
Umgebungsvariablen und Konfiguration in Compose
Swipe um das Menü anzuzeigen
Verwendung von Umgebungsvariablen in docker-compose.yml
Umgebungsvariablen ermöglichen flexible und wiederverwendbare Docker-Compose-Konfigurationen. Durch das Definieren von Variablen vermeiden Sie das Festschreiben von Werten wie Ports, Image-Tags oder Zugangsdaten direkt in Ihrer docker-compose.yml-Datei. Stattdessen verweisen Sie auf diese Variablen, und Docker Compose ersetzt deren Werte zur Laufzeit. Dieser Ansatz ist besonders nützlich, wenn dieselbe Anwendung in verschiedenen Umgebungen wie Entwicklung, Test oder Produktion bereitgestellt wird.
Um Umgebungsvariablen in Ihrer Compose-Datei zu definieren und zu verwenden, gehen Sie wie folgt vor:
- Speichern Sie Umgebungsvariablen in einer
.env-Datei im selben Verzeichnis wie Ihredocker-compose.yml; - Verweisen Sie in Ihrer Compose-Datei mit der Syntax
${VARIABLE_NAME}auf die Variablen; - Überschreiben Sie Variablen, indem Sie sie direkt in der Shell oder als Teil Ihrer CI/CD-Pipeline übergeben.
Angenommen, Sie möchten das Datenbankpasswort und den Anwendungsport über Umgebungsvariablen konfigurieren. Erstellen Sie eine .env-Datei mit folgendem Inhalt:
DB_PASSWORD=supersecret
APP_PORT=8080
In Ihrer docker-compose.yml referenzieren Sie diese Variablen wie folgt:
version: "3.8"
services:
web:
image: myapp:latest
ports:
- "${APP_PORT}:80"
environment:
- DB_PASSWORD=${DB_PASSWORD}
Wenn Sie docker-compose up ausführen, ersetzt Docker Compose die Werte aus der .env-Datei in der Konfiguration. Diese Methode hält sensible oder umgebungsspezifische Daten aus Ihrer Compose-Datei heraus und macht Ihr Setup portabler.
Verwaltung von Geheimnissen und sensiblen Daten in Compose-Dateien
Obwohl Umgebungsvariablen praktisch sind, sind sie nicht immer die sicherste Methode, um sensible Informationen wie Passwörter, API-Schlüssel oder Zertifikate zu verwalten. Umgebungsvariablen können unter Umständen über Protokolle, Prozesslisten oder Versionskontrolle offengelegt werden, wenn sie nicht sorgfältig behandelt werden. Zur Verbesserung der Sicherheit können Sie verschiedene Techniken zur Verwaltung von Geheimnissen in Docker Compose nutzen:
- Speichern Sie sensible Werte in einer separaten
.env-Datei und stellen Sie sicher, dass diese Datei mit.gitignorevon der Versionskontrolle ausgeschlossen wird; - Verwenden Sie die Unterstützung von Docker Compose für Docker-Secrets, wenn Sie mit Docker Swarm bereitstellen. Damit können Sie Geheimnisse sicher als Dateien innerhalb von Containern bereitstellen;
- Referenzieren Sie Geheimnisse als Dateien auf dem Host und binden Sie sie mit dem Schlüssel
volumesin Ihrer Compose-Datei in den Container ein.
Beispiel: Um ein Datenbankpasswort nicht offenzulegen, speichern Sie es in einer Datei namens db_password.txt und binden Sie diese in den Container ein:
services:
db:
image: postgres:latest
volumes:
- ./db_password.txt:/run/secrets/db_password
environment:
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
Dieser Ansatz hält das eigentliche Geheimnis aus der Compose-Datei und den Umgebungsvariablen heraus und reduziert das Risiko einer versehentlichen Offenlegung. Überprüfen Sie stets Ihre Konfiguration und Arbeitsabläufe, um sicherzustellen, dass Geheimnisse geschützt sind, und geben Sie niemals sensible Daten in die Versionskontrolle.
Danke für Ihr Feedback!