आप अपनी डॉक छवि में एक स्थानीय निर्देशिका को भी माउंट कर सकते हैं और अपने में स्क्रिप्ट का स्रोत बना सकते हैं .bashrc। जब तक आप इसे हर नए शेल पर निष्पादित नहीं करना चाहते, तब तक स्क्रिप्ट को फ़ंक्शंस से युक्त करना न भूलें। (यह अद्यतन सूचना देखने के लिए पुराना है।)
मैं इस समाधान का उपयोग कर रहा हूँ कि docker उदाहरण के बाहर स्क्रिप्ट को अपडेट करने में सक्षम हो। इस तरह मुझे छवि को फिर से चलाने की ज़रूरत नहीं है यदि परिवर्तन होते हैं, तो मैं बस एक नया खोल खोलता हूं। (एक खोल को फिर से खोलने से छुटकारा मिला - अपडेट नोटिस देखें)
यहां बताया गया है कि आप अपनी वर्तमान निर्देशिका को कैसे बांधते हैं:
docker run -it -v $PWD:/scripts $my_docker_build /bin/bash
अब आपकी वर्तमान निर्देशिका /scriptsआपके docker उदाहरण के लिए बाध्य है ।
(आउटडेटेड) अपने .bashrcपरिवर्तनों को सहेजने के लिए इस आदेश के साथ अपनी कार्य छवि बनाएं:
docker commit $container_id $my_docker_build
अपडेट करें
इस समस्या को हल करने के लिए मैं अब हर परिवर्तन के लिए एक नया खोल खोल सकता हूं:
डॉकटरफाइल में मैं खुद को जोड़ता हूं RUN echo "/scripts/bashrc" > /root/.bashrc"। अंदर zshrcमैं स्क्रिप्ट निर्देशिका को पथ में निर्यात करता हूं। स्क्रिप्ट निर्देशिका में अब एक के बजाय कई फाइलें हैं। अब मैं सीधे सभी लिपियों को कॉल कर सकता हूं बिना हर बदलाव के एक उप खोल खोल सकता हूं।
BTW आप अपने कंटेनर के बाहर इतिहास फ़ाइल को परिभाषित कर सकते हैं। इस तरह से यह आवश्यक नहीं है कि अब कोई बैश परिवर्तन किया जाए।
WORKDIRऔरCMD?