RUNऔर ENTRYPOINTएक स्क्रिप्ट को निष्पादित करने के दो अलग-अलग तरीके हैं।
RUNइसका मतलब है कि यह एक मध्यवर्ती कंटेनर बनाता है, स्क्रिप्ट चलाता है और एक नए मध्यवर्ती छवि में उस कंटेनर की नई स्थिति को फ्रीज करता है। उसके बाद स्क्रिप्ट नहीं चलेगी: आपकी अंतिम छवि उस स्क्रिप्ट के परिणाम को दर्शाने वाली है।
ENTRYPOINT आपकी छवि का अर्थ है (जिसने अभी तक स्क्रिप्ट निष्पादित नहीं की है) एक कंटेनर बनाएगा, और उस स्क्रिप्ट को चलाएगा।
दोनों ही मामलों में, स्क्रिप्ट को जोड़ने की आवश्यकता है, और RUN chmod +x /bootstrap.shएक अच्छा विचार है।
यह भी एक शेबंग के साथ शुरू होना चाहिए (जैसे #!/bin/sh)
आपकी स्क्रिप्ट को ध्यान में रखते हुए ( bootstarp.sh: एक दो git config --globalकमांड), यह RUNउस स्क्रिप्ट में एक बार आपके लिए सबसे अच्छा होगा Dockerfile, लेकिन सही उपयोगकर्ता (वैश्विक git configफ़ाइल %HOME%/.gitconfigजो डिफ़ॉल्ट रूप से /rootएक है) का उपयोग करना सुनिश्चित करें
अपने Dockerfile में जोड़ें:
RUN /bootstart.sh
फिर, कंटेनर /root/.gitconfigचलाते समय, स्क्रिप्ट चलाने की पुष्टि करने के लिए सामग्री की जाँच करें ।
bootstarp.shनिष्पादन योग्य बिट सेट है?