Tôi đang cố gắng thêm một tệp vào hình ảnh Docker được xây dựng từ tomcat
hình ảnh chính thức . Hình ảnh đó dường như không có quyền root, vì tôi đã đăng nhập với tư cách người dùng tomcat
nếu tôi chạy bash:
docker run -it tomcat /bin/bash
tomcat@06359f7cc4db:/usr/local/tomcat$
Nếu tôi hướng dẫn a Dockerfile
sao chép một tệp vào vùng chứa đó, thì tệp đó có quyền 644
và chủ sở hữu là root
. Theo tôi hiểu, điều đó có vẻ hợp lý vì tất cả các lệnh trong Dockerfile đều được chạy dưới quyền root. Tuy nhiên, nếu tôi cố gắng thay đổi quyền sở hữu tệp đó thành tomcat:tomcat
, tôi sẽ Operation not permitted
gặp lỗi.
Tại sao tôi không thể thay đổi quyền của một tệp được sao chép vào hình ảnh đó?
Làm thế nào nó có thể được sao chép:
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 .
Đầu ra của 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
không? Tại sao họ không xem xétUSER
chỉ thị?