कंटेनर शुरू होने पर एक स्क्रिप्ट निष्पादित करने के लिए छवि बनाम एक सीएमडी निर्देश सेट करने के लिए डॉकरफ़ाइल में कई रन कमांड का उपयोग करने के लिए सबसे अच्छा अभ्यास क्या है ?कंटेनर शुरू करने के लिए डॉकरफाइल में सेटअप स्क्रिप्ट निष्पादित करने के लिए एकाधिक सीएनडी बनाम एकल सीएमडी
उदाहरण के लिए:
FROM centos:latest
RUN useradd myuser
RUN mkdir -p /usr/local/myapp
ADD ./resources/myapp.zip /usr/local/myapp
RUN unzip /usr/local/myapp/myapp.zip
RUN chown -R myuser:myuser /usr/local/myapp
CMD ["/usr/local/myapp/bin/app"]
बनाम
FROM centos:latest
ADD ./resources/myapp.zip/
ADD ./resources/setup.sh/
RUN chmod +x /setup.sh
# setup.sh will create the user, extract the zip, execute the binary
CMD ["/setup.sh"]
धन्यवाद! मैंने इस तथ्य को नहीं माना था कि जब भी आप छवि से एक कंटेनर शुरू करते हैं तो setup.sh चलाया जाएगा। मेरे मामले में - हर बार निकाले जाने के बजाय 'ऐप' छवि के हिस्से के लिए बेहतर होगा। – Owen
@ ओवेन यह 'सीएमडी' का उद्देश्य है: https://docs.docker.com/engine/reference/builder/#cmd –