0Pricing
Docker & DevOps Fundamentals · Lektion

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 Docker & DevOps Fundamentals-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 Docker & DevOps Fundamentals-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Docker & DevOps Fundamentals-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: secret

Listenform

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=secret

Die .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=8080

Variablenersetzung

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.env

Vorrangregeln

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 -e hat 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 config

Secrets 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
.env

Kurztest

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 Werte
  • docker compose config zeigt 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 Docker & DevOps Fundamentals-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Docker & DevOps Fundamentals-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 Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals zu starten?

Keine Vorkenntnisse erforderlich. Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals-Lektion Code schreiben und ausführen?

Ja. Jede Docker & DevOps Fundamentals-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

  1. Was ist Docker Compose?
  2. Eine Compose-Datei schreiben
  3. Anwendungen mit mehreren Services bereitstellen
  4. Umgebungsvariablen und .env-Dateien
← Zurück zu Docker & DevOps Fundamentals