Umgebungsvariablen und .env-Dateien
Konfigurieren Sie Compose-Services sauber mit Umgebungsvariablen, Variablenersetzung und einer .env-Datei, sodass eine Compose-Datei in Entwicklung, Staging und Produktion funktioniert.
Umgebungsvariablen und .env-Dateien ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Warum die Konfiguration auslagern?
Passwörter und Ports in einer Compose-Datei fest zu codieren ist unflexibel und unsicher. Mit Umgebungsvariablen können Sie das Verhalten je nach Umgebung ändern, ohne das YAML zu bearbeiten.
- Halten Sie Geheimnisse aus der Versionsverwaltung heraus
- Verwenden Sie dieselbe Compose-Datei überall
- Überschreiben Sie Werte zur Laufzeit
Der Schlüssel environment
Deklarieren Sie Variablen innerhalb eines Dienstes unter environment als Map. Diese werden beim Start in den Container injiziert.
services:
db:
image: postgres:16
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: secretListenform
Derselbe Schlüssel akzeptiert auch eine Liste von KEY=VALUE-Zeichenfolgen. Wählen Sie einfach die Form, die Sie übersichtlicher finden.
services:
db:
image: postgres:16
environment:
- POSTGRES_USER=app
- POSTGRES_PASSWORD=secretDie .env-Datei
Compose liest automatisch eine Datei namens .env im Projektverzeichnis ein. Definieren Sie Werte dort einmalig und verweisen Sie mit der Ersetzungssyntax ${VAR} darauf.
# .env
PG_USER=app
PG_PASS=secret
WEB_PORT=8080Variablenersetzung
Verwenden Sie ${VAR} an beliebiger Stelle in der Compose-Datei. Compose ersetzt den Ausdruck vor dem Parsen durch den Wert aus .env oder aus der Shell.
services:
db:
image: postgres:16
environment:
POSTGRES_USER: ${PG_USER}
POSTGRES_PASSWORD: ${PG_PASS}Standardwerte
Geben Sie mit ${VAR:-default} einen Ersatzwert an. Wenn die Variable nicht gesetzt oder leer ist, wird der Standardwert verwendet. So funktioniert der Stack auch ohne vollständige .env-Datei.
ports:
- "${WEB_PORT:-80}:80"Erforderliche Variablen
Verwenden Sie ${VAR:?message}, um eine Variable als erforderlich zu kennzeichnen. Fehlt sie, bricht Compose mit Ihrer Nachricht ab und erkennt Fehlkonfigurationen frühzeitig.
environment:
API_KEY: ${API_KEY:?API_KEY must be set}Die Direktive env_file
Wenn Sie eine vollständige Variablendatei direkt in einen Container übergeben möchten (nicht nur zur Ersetzung), verwenden Sie env_file. Jede Zeile wird zu einer Umgebungsvariablen des Containers.
services:
api:
image: myapi:1.0
env_file:
- api.envVorrangregeln
Wenn eine Variable an mehreren Stellen definiert ist, wendet Compose eine Rangfolge an. Die Shell-Umgebung hat Vorrang vor .env; ein expliziter Eintrag unter environment: hat Vorrang vor env_file.
- Shell / CLI
-ehat Vorrang - danach
environment: - danach
env_file - danach die Standardwerte des Images
Aufgelöste Werte prüfen
Führen Sie docker compose config aus, um die vollständig aufgelöste Compose-Datei mit allen angewendeten Ersetzungen auszugeben. So können Sie zuverlässig prüfen, was tatsächlich ausgeführt wird.
docker compose configSecrets aus Git heraushalten
Committen Sie eine .env.example mit Platzhaltern und fügen Sie die echte .env zu .gitignore hinzu. Verwenden Sie für echte Produktions-Secrets vorzugsweise Docker Secrets statt Umgebungsvariablen.
# .gitignore
.envKurztest
Wie funktionieren Standardwerte bei Ersetzungen?
Zusammenfassung
Sie können Compose jetzt sauber mit Umgebungsdaten konfigurieren:
environment:injiziert Variablen pro Service- Eine
.env-Datei liefert Werte für die Ersetzung von${VAR} :-legt Standardwerte fest,:?kennzeichnet erforderliche Wertedocker compose configzeigt das aufgelöste Ergebnis
Dadurch lässt sich eine Compose-Datei in jeder Umgebung verwenden.
Häufig gestellte Fragen
Ist die Lektion „Umgebungsvariablen und .env-Dateien“ kostenlos?
Ja — der vollständige Text von „Umgebungsvariablen und .env-Dateien“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Umgebungsvariablen und .env-Dateien“?
Konfigurieren Sie Compose-Services sauber mit Umgebungsvariablen, Variablenersetzung und einer .env-Datei, sodass eine Compose-Datei in Entwicklung, Staging und Produktion funktioniert. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Umgebungsvariablen und .env-Dateien“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Was ist Docker Compose?
- Eine Compose-Datei schreiben
- Anwendungen mit mehreren Services bereitstellen
- Umgebungsvariablen und .env-Dateien