In einem Projekt müssen Sie häufig Umgebungsvariablen in der Datei docker-compose.yml verwenden, um unterschiedliche Bedingungen und Verwendungsszenarien zu steuern. Dieser Artikel konzentriert sich darauf, wie Docker Compose auf Umgebungsvariablen verweist. Hinweis: Die Demonstrationsumgebung dieses Artikels ist Ubuntu 16.04. Erstellen Sie CLI- und Umgebungsvariablen Die Compose CLI (Compose-Befehlszeile, d. h. das Docker-Compose-Programm) erkennt Umgebungsvariablen mit den Namen COMPOSE_PROJECT_NAME und COMPOSE_FILE (siehe hier für spezifische unterstützte Umgebungsvariablen). Beispielsweise können wir den Projektnamen und die Konfigurationsdatei für Docker-Compose über diese beiden Umgebungsvariablen angeben: $ export COMPOSE_PROJECT_NAME=TestVar $ export COMPOSE_FILE=~/projects/composecounter/docker-compose.yml Starten Sie dann die Anwendung. Die angezeigten Projektnamen sind diejenigen, die wir in den Umgebungsvariablen angegeben haben: Wenn Sie die Umgebungsvariable festlegen und gleichzeitig eine Befehlszeilenoption angeben, gilt die Einstellung der Befehlszeilenoption: $ docker-compose -p nickproject up -d Referenzieren von Umgebungsvariablen in der Compose-Datei Wir können in der Compose-Datei auch direkt auf Umgebungsvariablen verweisen, wie in der folgenden Demo: Version: '3' Leistungen: Webseite: Bild: ${IMAGETAG} Häfen: - "5000:5000" Redis: Bild: „redis:alpine“ Wir spezifizieren das Webbild über die Umgebungsvariable ${IMAGETAG}. Nun übergeben wir den Wert der Umgebungsvariable in der Compose-Konfigurationsdatei per Export: Beachten Sie: Wenn die entsprechende Umgebungsvariable nicht festgelegt ist, ersetzt compose sie durch eine leere Zeichenfolge: In diesem Fall können wir einen Standardwert für die Variable in der Compose-Konfigurationsdatei festlegen: Version: '3' Leistungen: Webseite: Bild: ${IMAGETAG:-defaultwebimage} Häfen: - "5000:5000" Redis: Bild: „redis:alpine“ Wenn die Variable IMAGETAG nicht festgelegt ist, wird das Standardwebbild angewendet: Zusätzlich zu dieser Methode können wir Standardwerte für Umgebungsvariablen auch über die später vorgestellte .env-Datei festlegen. Übergeben von Umgebungsvariablen an den Container Sehen wir uns zunächst an, wie Umgebungsvariablen für den Container in der Compose-Datei festgelegt werden: Webseite: Umfeld: DEBUG: 1 Der Umgebungsknoten in der Compose-Datei wird verwendet, um Umgebungsvariablen für den Container festzulegen. Das Obige entspricht: $ docker run -e DEBUG=1 Es ist auch sehr einfach, den Wert der aktuellen Shell-Umgebungsvariable an die Umgebungsvariable des Containers zu übergeben. Entfernen Sie einfach den Zuweisungsteil im obigen Code: Webseite: Umfeld: DEBUGGEN: In diesem Fall wird die Umgebungsvariable DEBUG, wenn sie nicht in die aktuelle Shell exportiert wird, in der Compose-Datei als null interpretiert: Beim Versuch, die Umgebungsvariable DEBUG zu exportieren: $ export DEBUG=1 Dies ist das richtige Nutzungsszenario, das wir entworfen haben! Verwenden von Dateien zum Festlegen mehrerer Umgebungsvariablen für einen Container Wenn Sie meinen, dass das Festlegen von Umgebungsvariablen für den Container über die Umgebung nicht aufregend genug ist, können wir Umgebungsvariablen für den Container auch über Dateien wie den Parameter --env-file von docker-run festlegen: Webseite: Umgebungsdatei: -web-variables.env Beachten Sie, dass der Pfad zur Datei web-variables.env relativ zur Datei docker-compose.yml ist. Der obige Code hat dieselbe Wirkung wie der folgende Code: $ docker run --env-file=web-variables.env In der Datei web-variables.env können eine oder mehrere Umgebungsvariablen definiert werden: #Web-Container-Umgebung definieren APPNAME=hallowelt AUTOR=Nick Li VERSION=1.0 Überprüfen Sie die Ergebnisse: Es stellt sich heraus, dass Compose die env_file-Einstellungen in die Umgebung übersetzt! .env-Datei Wenn wir in der Datei docker-compose.yml auf eine große Anzahl von Umgebungsvariablen verweisen, ist das Festlegen von Standardwerten für jede Umgebungsvariable mühsam und beeinträchtigt auch die Einfachheit von docker-compose.yml. An diesem Punkt können wir die .env-Datei verwenden, um Standardwerte für alle Umgebungsvariablen festzulegen, auf die in der Datei docker-compose.yml verwiesen wird! Version: '3' Leistungen: Webseite: Bild: ${IMAGETAG} Umfeld: APPNAME: AUTOR: VERSION: Häfen: - "5000:5000" Redis: Bild: „redis:alpine“ Erstellen Sie dann eine .env-Datei im selben Verzeichnis und bearbeiten Sie deren Inhalt wie folgt: # Standardwert der Umgebungsvariable definieren. IMAGETAG=Standardwebbild APPNAME=Standard-App-Name AUTHOR=Standard-Autorenname VERSION=Standardversion ist 1.0 Überprüfen Sie die Ergebnisse. Alle Umgebungsvariablen werden jetzt mit den in der .env-Datei definierten Standardwerten angezeigt: Konfigurieren Sie Umgebungsvariablen für verschiedene Szenarien Wie wir im vorherigen Abschnitt sehen können, bietet Docker Compose genügend Flexibilität, um die in der Datei docker-compose.yml referenzierten Umgebungsvariablen festzulegen. Ihre Prioritäten sind wie folgt:
Erstens hat der direkt in der Datei docker-compose.yml festgelegte Wert die höchste Priorität. Gemäß der obigen Prioritätsdefinition können wir die Umgebungsvariablen für verschiedene Szenarien in verschiedenen Shell-Skripten definieren und exportieren. Führen Sie dann vor der Ausführung des Befehls „docker-compose“ den Quellbefehl aus, um die im Shell-Skript definierten Umgebungsvariablen in die aktuelle Shell zu exportieren. Auf diese Weise können Sie die Anzahl der Stellen reduzieren, an denen Umgebungsvariablen verwaltet werden müssen. Im folgenden Beispiel erstellen wir test.sh und prod.sh in dem Verzeichnis, in dem sich die Datei docker-compose.yml befindet. Der Inhalt von test.sh ist wie folgt: #!/bin/bash # Standardwert der Umgebungsvariable definieren. exportiere IMAGETAG=web:v1 export APPNAME=HalloWelt export AUTOR=Nick Li export VERSION=1.0 Der Inhalt von prod.sh ist wie folgt: #!/bin/bash # Standardwert der Umgebungsvariable definieren. exportiere IMAGETAG=webpord:v1 export APPNAME=HelloWorldProd export AUTOR=Nick Li export VERSION=1.0LTS Führen Sie in der Testumgebung den folgenden Befehl aus: $ Quelle test.sh $ Docker-Compose-Konfiguration Zu diesem Zeitpunkt wenden die Umgebungsvariablen in docker-compose.yml Einstellungen an, die sich auf die Testumgebung beziehen. Führen Sie in einer Produktionsumgebung den folgenden Befehl aus: $ Quelle prod.sh $ Docker-Compose-Konfiguration Zu diesem Zeitpunkt wenden die Umgebungsvariablen in docker-compose.yml Einstellungen an, die sich auf die Produktionsumgebung beziehen. Zusammenfassen Docker Compose bietet umfassende Unterstützung und flexible Nutzung von Umgebungsvariablen. Ich hoffe, dass die Zusammenfassung in diesem Artikel Ihnen dabei helfen kann, die relevante Verwendung zu klären und auf prägnante Weise Unterstützung für verschiedene Verwendungsszenarien zu bieten. siehe: Erstellen Sie CLI-Umgebungsvariablen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Wie funktionieren die dynamischen Komponenten von Vue3?
empfehlen: Detailliertes Tutorial zur Registrieru...
vuex-persistenter Zustand Kernprinzip: Alle Vuex-...
Methode 1: Verwenden Sie den Befehl SET PASSWORD ...
Methode join(): verbindet alle Elemente eines Arr...
Problem: Der Überlauf der Auto-Increment-ID in ei...
1. Installationsanweisungen Im Vergleich zur loka...
Inhaltsverzeichnis Was ist das Linux-System, das ...
Inhaltsverzeichnis Überblick So nutzen Sie die Mu...
Zunächst können Sie den Unterschied zwischen den ...
Frage Nicht genügend Speicher, wenn Docker Elasti...
Wildcard-Kategorien: %Prozent-Platzhalter: Gibt a...
Inhaltsverzeichnis 1. Ziehen Sie das Bild 2. Ausf...
Inhaltsverzeichnis 1. Unzip-Befehl 1.1 Syntax 1.2...
Heutzutage ist das Kopieren von Websites im Intern...
Flexibles Layout (Flexbox) erfreut sich zunehmend...