Estoy tratando de agregar un archivo a una imagen Docker creada a partir de la tomcatimagen oficial . Esa imagen no parece tener derechos de root, ya que estoy conectado como usuario tomcatsi ejecuto bash:
docker run -it tomcat /bin/bash
tomcat@06359f7cc4db:/usr/local/tomcat$
Si instruir a un Dockerfilecopiar un archivo a ese contenedor, el archivo tiene permisos 644y el propietario es root. Según tengo entendido, eso parece ser razonable ya que todos los comandos en el Dockerfile se ejecutan como root. Sin embargo, si intento cambiar la propiedad de ese archivo tomcat:tomcat, aparece un Operation not permittederror.
¿Por qué no puedo cambiar los permisos de un archivo copiado a esa imagen?
Cómo se puede reproducir:
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 .
La salida de 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? ¿Por qué no tomanUSERen cuenta la directiva?