जैसा कि 684 अंक द्वारा चित्रित किया गया है , exportछवियों के पार नहीं रहेगा। (यह मत भूलो कि प्रत्येक डॉकरफाइल निर्देश एक मध्यवर्ती कंटेनर उत्पन्न करेगा, एक मध्यवर्ती छवि में प्रतिबद्ध: वह छवि निर्यात किए गए मूल्य को संरक्षित नहीं
ENVकरेगा ) :
ENVजब कंटेनर एक परिणामी छवि से चलाया जाता है, तो उपयोग किए जाने वाले वातावरण चर बने रहेंगे।
आप उपयोग करने वाले मान देख सकते हैं docker inspect, और उनका उपयोग करके बदल सकते हैं docker run --env <key>=<value>।
इस मुद्दे पर प्रकाश डाला गया था:
RUN export PATH=$PATH:/foo/bar # from directly in builder
जब मैं docker run [img] bash -c 'echo $PATH'इसे शामिल नहीं करता /foo/bar।
कोशिश करो
एक नया डॉकफाइल युक्त बनाएं:
FROM centos:6
ENV FOO=foofoo
RUN export BAR=barbar
RUN export BAZ=bazbaz && echo "$FOO $BAR $BAZ"
फिर इसका निर्माण करें। अंतिम चरण का आउटपुट है:
Step 4/4 : RUN export BAZ=bazbaz && echo "$FOO $BAR $BAZ"
---> Running in eb66196b238d
foofoo bazbaz
आप देख सकते हैं:
FOOमध्यवर्ती कंटेनरों के माध्यम से बनी रहती है, ENVकीवर्ड के लिए धन्यवाद ;
BARexportआदेश के कारण, अगले चरण पर कायम नहीं रहता है ;
BAZ सही ढंग से प्रदर्शित होता है क्योंकि चर का उपयोग उसी कंटेनर पर किया जाता है।
dockerउदाहरण केrunसाथ--env-fileया--envउन (इन विकल्प तर्कों द्वारा) चर निर्यात करेगा? इस तरह के एक पुराने जवाब पर टकराने के लिए खेद है, लेकिन एक वेबसर्च ने इसे मेरे सामने लाया। अच्छा जवाब btw।