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
निष्पादन योग्य बिट सेट है?