Wie in Ausgabe 684 dargestellt , export
bleibt es nicht über Bilder hinweg bestehen. (Vergessen Sie nicht , dass jeder Dockerfile Richtlinie wird einen Zwischenbehälter erzeugen, in ein Zwischenbild begangen: das Bild wird die exportierte Wert nicht erhalten)
ENV
werden:
Die mit festgelegten Umgebungsvariablen ENV
bleiben bestehen, wenn ein Container aus dem resultierenden Image ausgeführt wird.
Sie können die Werte mit anzeigen docker inspect
und mit ändern docker run --env <key>=<value>
.
Das Problem illustrierte dies mit:
RUN export PATH=$PATH:/foo/bar # from directly in builder
Wenn ich es tue docker run [img] bash -c 'echo $PATH'
, schließt es nie ein /foo/bar
.
Versuch es
Erstellen Sie eine neue Docker-Datei mit:
FROM centos:6
ENV FOO=foofoo
RUN export BAR=barbar
RUN export BAZ=bazbaz && echo "$FOO $BAR $BAZ"
Dann baue es. Die Ausgabe des letzten Schritts lautet:
Step 4/4 : RUN export BAZ=bazbaz && echo "$FOO $BAR $BAZ"
---> Running in eb66196b238d
foofoo bazbaz
Du kannst sehen:
FOO
bleibt dank des ENV
Schlüsselworts durch Zwischencontainer bestehen ;
BAR
bleibt beim nächsten Schritt aufgrund des export
Befehls nicht bestehen ;
BAZ
wird korrekt angezeigt, da die Variable im selben Container verwendet wird.
docker
zBrun
mit (--env-file
oder--env
mit diesen Optionsargumenten) Variablen exportiert wird oder wird? Es tut mir leid, dass ich auf eine so alte Antwort gestoßen bin, aber eine Websuche hat sie mir gerade gebracht. Schöne Antwort übrigens.