Sayı 684'te gösterildiği gibi , exportgörüntülerde kalıcı olmayacak. (Her Dockerfile yönergesinin bir ara görüntüye işlenmiş bir ara kap oluşturacağını unutmayın: bu görüntü dışa aktarılan değeri korumaz)
ENV:
Kullanılarak ayarlanan ortam değişkenleri ENV, elde edilen görüntüden bir kap çalıştırıldığında kalıcı olacaktır.
Değerleri ile görüntüleyebilir ve kullanarak docker inspectdeğiştirebilirsiniz docker run --env <key>=<value>.
Sorun şunu gösteriyordu:
RUN export PATH=$PATH:/foo/bar # from directly in builder
Yaptığım docker run [img] bash -c 'echo $PATH'zaman asla içermiyor /foo/bar.
Dene
Şunları içeren yeni bir dockerfile oluşturun:
FROM centos:6
ENV FOO=foofoo
RUN export BAR=barbar
RUN export BAZ=bazbaz && echo "$FOO $BAR $BAZ"
Sonra inşa edin. Son adımın çıktısı:
Step 4/4 : RUN export BAZ=bazbaz && echo "$FOO $BAR $BAZ"
---> Running in eb66196b238d
foofoo bazbaz
Görebilirsin:
FOOENVanahtar kelime sayesinde ara kaplarda devam eder ;
BARexportkomut nedeniyle bir sonraki adımda ısrar etmez ;
BAZ değişken aynı kapta kullanıldığından doğru şekilde görüntüleniyor.
dockerörneğin bu (bu seçenek argümanlarıyla) değişkenlerlerunbirlikte--env-fileveya dışarı aktarılacağı anlamına mı geliyor--env? Bu kadar eski bir cevabı bulduğum için üzgünüm ama bir web araştırması bunu aklıma getirdi. Güzel cevap btw.