Saya mencoba menambahkan file ke gambar buruh pelabuhan yang dibuat dari pejabat tomcat
gambar. Gambar itu tampaknya tidak memiliki hak root, karena saya masuk sebagai pengguna tomcat
jika saya menjalankan bash:
docker run -it tomcat /bin/bashtomcat@06359f7cc4db:/usr/local/tomcat$
Jika saya menginstruksikan a Dockerfile
untuk menyalin file ke wadah itu, file memiliki izin 644
dan pemiliknya adalah root
. Sejauh yang saya mengerti, itu tampaknya masuk akal karena semua perintah di Dockerfile dijalankan sebagai root. Namun, jika saya mencoba mengubah kepemilikan file itu menjadi tomcat:tomcat
, Saya mendapatkan Operation not permitted
kesalahan.
Mengapa saya tidak dapat mengubah izin file yang disalin ke gambar itu?
Bagaimana itu bisa direproduksi:
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 .
Output dari 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