Wie in Ausgabe 684 dargestellt , exportbleibt 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)
ENVwerden:
Die mit festgelegten Umgebungsvariablen ENVbleiben bestehen, wenn ein Container aus dem resultierenden Image ausgeführt wird.
Sie können die Werte mit anzeigen docker inspectund 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:
FOObleibt dank des ENVSchlüsselworts durch Zwischencontainer bestehen ;
BARbleibt beim nächsten Schritt aufgrund des exportBefehls nicht bestehen ;
BAZ wird korrekt angezeigt, da die Variable im selben Container verwendet wird.
dockerzBrunmit (--env-fileoder--envmit 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.