Detaillierte Erklärung der verfügbaren Umgebungsvariablen in Docker Compose

Detaillierte Erklärung der verfügbaren Umgebungsvariablen in Docker Compose

Mehrere Teile von Compose befassen sich in irgendeiner Weise mit Umgebungsvariablen. Dieses Tutorial kann Ihnen dabei helfen, die benötigten Informationen zu finden.

1. Ersetzen Sie Umgebungsvariablen in der Compose-Datei

Sie können Werte in einer Compose-Datei mithilfe von Umgebungsvariablen aus Ihrer Shell auffüllen:

Webseite:
 Bild: "webapp:${TAG}"

Weitere Informationen finden Sie im Abschnitt zur Variablensubstitution im Compose-Dateihandbuch.

2. Umgebungsvariablen im Container festlegen

Sie können Umgebungsvariablen im Servicecontainer mit dem Schlüsselwort „environment“ festlegen, genau wie mit „docker run -e VARIABLE=VALUE ...“:

Webseite:
 Umfeld:
 -DEBUG=1

3. Übergeben von Umgebungsvariablen an den Container

Wenn Sie environment verwenden, ohne einen Wert zuzuweisen, können Sie die Umgebungsvariablen in der Shell an den Service-Container übergeben, genau wie mit docker run -e VARIABLE ... :

Webseite:
 Umfeld:
 -DEBUGGEN

Der Wert der DEBUG-Variable im Container wird aus der gleichnamigen Variable in der Shell übernommen, die Compose ausführt.

4. Die Konfigurationsoption „env_file“

Mit dem Befehl env_file können Sie mehrere Umgebungsvariablen mithilfe einer externen Datei an den Servicecontainer übergeben, genau wie mit docker run --env-file=FILE ... :

Webseite:
 Umgebungsdatei:
 -web-variables.env

5. Umgebungsvariablen mit „docker-compose run“ festlegen

Genau wie mit docker run -e können Sie docker-compose run -e verwenden, um Umgebungsvariablen für einen einzelnen Container festzulegen:

docker-compose run -e DEBUG=1 web python console.py

Sie können eine Variable auch aus der Shell übergeben, anstatt sie direkt zuzuweisen:

docker-compose run -e DEBUG web python console.py

Der Wert der DEBUG-Variable im Container wird aus der gleichnamigen Variable in der Shell übernommen, die Compose ausführt.

6. „.env“-Datei

Sie können Standardwerte für alle Umgebungsvariablen festlegen, auf die in einer Compose-Datei verwiesen wird, in einer Umgebungsdatei mit dem Namen .env oder zum Konfigurieren von Compose:

$ Katze .env
TAG=v1.5

$ Katze docker-compose.yml
Version: '3'
Leistungen:
 Webseite:
 Bild: "webapp:${TAG}"

Beim Ausführen docker-compose up verwendet der oben definierte web webapp:v1.5 . Sie können die Konfigurationsinformationen der Anwendung überprüfen, indem Sie sie mit dem Befehl „config“ auf dem Terminal ausdrucken:

$ Docker-Compose-Konfiguration

Version: '3'
Leistungen:
 Webseite:
 Bild: 'webapp:v1.5'

Werte in der Shell haben Vorrang vor Werten, die in der .env Datei angegeben sind. Wenn Sie TAG in der Shell auf einen anderen Wert setzen, wird dieser Wert im Image verwendet:

$ export TAG=v2.0
$ Docker-Compose-Konfiguration

Version: '3'
Leistungen:
 Webseite:
 Bild: 'webapp:v2.0'

Beim Festlegen der gleichen Umgebungsvariable in mehreren Dateien verwendet Compose die folgende Priorität, um auszuwählen, welcher Wert verwendet werden soll:

  • Datei erstellen
  • Umgebungsdatei
  • Docker-Datei
  • Variable ist nicht definiert

Im folgenden Beispiel legen wir sowohl in der Umgebungsdatei als auch in der Compose-Datei dieselben Umgebungsvariablen fest:

$ Katze ./Docker/api/api.env
NODE_ENV=Test

$ Katze docker-compose.yml
Version: '3'
Leistungen:
 API:
 Bild: ‚Knoten:6-Alpine‘
 Umgebungsdatei:
  - ./Docker/api/api.env
 Umfeld:
  - NODE_ENV=Produktion

Beim Ausführen eines Containers haben die in der Compose-Datei definierten Umgebungsvariablen Vorrang.

$ Docker-Compose Exec-API-Knoten

Prozess.Umgebung.NODE_ENV
'Produktion'

Alle ARG oder ENV -Einstellungen im Dockerfile werden nur ausgewertet, wenn kein Docker Compose-Eintrag für environment oder env_file vorhanden ist.

Details zum NodeJS-Container

Wenn Sie für den Start Ihres Skripts einen package.json-Eintrag wie NODE_ENV=test node server.js haben, überschreibt dies alle Einstellungen in Ihrer docker-compose.yml-Datei.

7. Konfigurieren Sie Compose mithilfe von Umgebungsvariablen

Es gibt mehrere Umgebungsvariablen, mit denen das Verhalten der Docker Compose-Befehlszeile konfiguriert werden kann. Sie beginnen mit COMPOSE_ oder DOCKER_ und werden in den CLI-Umgebungsvariablen aufgezeichnet.

8. Umgebungsvariablen über Link erstellen

Bei Verwendung der Links-Option in der ersten Version der Compose-Datei werden für jeden Link Umgebungsvariablen erstellt. Sie sind in der Link-Umgebungsvariablenreferenz dokumentiert.

Diese Variablen sind jedoch veraltet. Link erstellt stattdessen einen Alias ​​für den Host.

Ursprüngliche URL

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:
  • Beispiel zum Referenzieren von Umgebungsvariablen in Docker Compose
  • Verwendung von Umgebungsvariablen in Docker und Lösungen für häufige Probleme

<<:  Detaillierte Erklärung zur Verwendung des Canvas-Operation-Plugins fabric.js

>>:  Teilen Sie 101 MySQL-Debugging- und Optimierungstipps

Artikel empfehlen

Eine umfassende Analyse der Möglichkeiten von Nginx

Vorwort Dieser Artikel konzentriert sich nur dara...

So führen Sie Hadoop aus und erstellen Images in Docker

Wir erfinden das Rad neu: Hier verwenden wir Neuv...

Tutorial zur Installation der PyTorch-Entwicklungsumgebung unter Windows

Anaconda-Installation Anaconda ist ein Softwarepa...

Erläuterung der Zusammenführung von TypeScript-Namespaces

Inhaltsverzeichnis Namespaces mit gleichem Namen ...

Wichtige Hinweise zu PHP-HTMLhtml-Wissenspunkten (unbedingt lesen)

1. Verwenden Sie Frameset, Frame und Iframe, um m...

MySQL ändert die Standard-Engine und Zeichensatzdetails

Inhaltsverzeichnis 1. Datenbankmodul 1.1 Datenban...

Detaillierte Erklärung, wo Docker Protokolldateien speichert

Inhaltsverzeichnis Wo werden die Protokolle gespe...

Einführung in häufig verwendete MySQL-Befehle in der Linux-Umgebung

Geben Sie den MySQL-Befehl ein: mysql -u+(Benutze...

Mysql-Operation zum Abrufen von Tabellenkommentarfeldern

Ich werde nicht viel Unsinn erzählen, schauen wir...

MySql Installer 8.0.18 Visuelles Installationstutorial mit Bildern und Text

Inhaltsverzeichnis 1. MySQL 8.0.18 installieren 2...

So ändern Sie die CentOS-Serverzeit auf die Peking-Zeit

1. Ich habe ein VPS- und CentOS-System gekauft un...

Unterschiede zwischen MySQL MyISAM und InnoDB

Der Unterschied: 1. InnoDB unterstützt Transaktio...

Lösen Sie das Matching-Problem in CSS

Problembeschreibung Wie wir alle wissen, wird bei...