Resmi tomcatgörüntüden oluşturulan bir Docker görüntüsüne dosya eklemeye çalışıyorum . tomcatEğer bash çalıştırırsam kullanıcı olarak oturum açtığım için bu görüntünün kök hakları yok gibi görünüyor :
docker run -it tomcat /bin/bash
tomcat@06359f7cc4db:/usr/local/tomcat$
DockerfileBir dosyayı bu kapsayıcıya kopyalamamı istersem dosyanın izinleri vardır 644ve sahibi olur root. Anladığım kadarıyla, Dockerfile'daki tüm komutlar kök olarak çalıştırıldığı için makul görünüyor. Ancak, bu dosyanın sahipliğini değiştirmeye çalışırsam tomcat:tomcatbir Operation not permittedhata alıyorum.
Bu görüntüye kopyalanan bir dosyanın izinlerini neden değiştiremiyorum?
Nasıl çoğaltılabilir:
mkdir docker-addfilepermission
cd docker-addfilepermission
touch test.txt
echo 'FROM tomcat
COPY test.txt /usr/local/tomcat/webapps/
RUN chown tomcat:tomcat /usr/local/tomcat/webapps/test.txt' > Dockerfile
docker build .
Çıktı docker build .:
Sending build context to Docker daemon 3.072 kB
Sending build context to Docker daemon
Step 0 : FROM tomcat
---> 44859847ef64
Step 1 : COPY test.txt /usr/local/tomcat/webapps/
---> Using cache
---> a2ccb92480a4
Step 2 : RUN chown tomcat:tomcat /usr/local/tomcat/webapps/test.txt
---> Running in 208e7ff0ec8f
chown: changing ownership of '/usr/local/tomcat/webapps/test.txt': Operation not permitted
2014/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
root?USERDirektifi neden dikkate almıyorlar ?