मैं आधिकारिक से निर्मित डॉकर छवि में एक फ़ाइल जोड़ने का प्रयास कर रहा हूं tomcat
छवि। उस छवि में रूट अधिकार नहीं हैं, क्योंकि मैं उपयोगकर्ता के रूप में लॉग इन हूं tomcat
अगर मैं बैश चलाता हूं:
docker run -it tomcat /bin/bashtomcat@06359f7cc4db:/usr/local/tomcat$
अगर मैं एक हिदायत Dockerfile
फ़ाइल को उस कंटेनर में कॉपी करने के लिए, फ़ाइल में अनुमतियां हैं 644
और मालिक है root
. जहां तक मैं समझता हूं, यह उचित प्रतीत होता है क्योंकि डॉकरफाइल में सभी कमांड रूट के रूप में चलाए जाते हैं । हालांकि, अगर मैं उस फ़ाइल के स्वामित्व को बदलने की कोशिश करता हूं tomcat:tomcat
, मुझे एक मिलता है Operation not permitted
त्रुटि।
मैं उस छवि में कॉपी की गई फ़ाइल की अनुमतियों को क्यों नहीं बदल सकता?
कैसे यह reproduced किया जा सकता है:
mkdir docker-addfilepermissioncd docker-addfilepermissiontouch test.txtecho 'FROM tomcatCOPY test.txt /usr/local/tomcat/webapps/RUN chown tomcat:tomcat /usr/local/tomcat/webapps/test.txt' > Dockerfiledocker build .
का उत्पादन docker build .
:
Sending build context to Docker daemon 3.072 kBSending build context to Docker daemon Step 0 : FROM tomcat ---> 44859847ef64Step 1 : COPY test.txt /usr/local/tomcat/webapps/ ---> Using cache ---> a2ccb92480a4Step 2 : RUN chown tomcat:tomcat /usr/local/tomcat/webapps/test.txt ---> Running in 208e7ff0ec8fchown: changing ownership of '/usr/local/tomcat/webapps/test.txt': Operation not permitted2014/11/01 00:30:33 The command [/bin/sh -c chown tomcat:tomcat /usr/local/tomcat/webapps/test.txt] returned a non-zero code: 1