docker-compose
Unterstützt jetzt die Variablensubstitution.
Compose verwendet die Variablenwerte aus der Shell-Umgebung, in der docker-compose
es ausgeführt wird. Angenommen, die Shell enthält POSTGRES_VERSION=9.3
und Sie geben diese Konfiguration in Ihrer docker-compose.yml
Datei an:
db:
image: "postgres:${POSTGRES_VERSION}"
Wenn Sie docker-compose up
mit dieser Konfiguration ausführen , sucht Compose nach der POSTGRES_VERSION
Umgebungsvariablen in der Shell und ersetzt ihren Wert in. In diesem Beispiel löst Compose das image
to auf, postgres:9.3
bevor die Konfiguration ausgeführt wird.
docker-compose
keine Übergabe von Argumenten unterstützt.docker-compose run
zum Übergeben von Argumenten verwendet werden, da das Argument an mehrere Container übergeben werden muss.docker-compose.yml
Datei festlegen .environment:\n PLATFORM_VERSION: "${PLATFORM_VERSION:-v1.0.0}"
. PS:\n
Nur weil ich keinen Weg gefunden habe, mehrzeiligen Codeblock in Kommentaren zu formatieren.Dies kann jetzt ab Docker-Compose v2 + als Teil des
build
Objekts erfolgen.Weitere Informationen finden Sie im Docker zum Erstellen von Dokumenten .
Im obigen Beispiel werden "var1" und "var2" an die Build-Umgebung gesendet.
Hinweis: Alle env-Variablen (die mithilfe des
environment
Blocks angegeben werden), die denselben Namen wie dieargs
Variablen haben, überschreiben diese Variable.quelle
args
Tasten in Kleinbuchstaben geschrieben werden müssen? In den Dokumenten und allen Beispielen, die ich gesehen habe, werden Kleinbuchstaben verwendet, aber ich habe nicht erwähnt, dass dies erforderlich ist .environment
Block überschreiben keineargs
Variablen. Es ist nur so , dassargs
Variablen während des Behälters zur Verfügung stehen Build - Prozess , aberenvironment
Variablen stehen zur Verfügung , während der Behälter läuft .