Estoy tratando de agregar un archivo a una imagen de Docker creada a partir del oficial tomcat
imagen. Esa imagen no parece tener derechos de root, ya que estoy conectado como usuario tomcat
si corro bash:
docker run -it tomcat /bin/bashtomcat@06359f7cc4db:/usr/local/tomcat$
Si instruyo a un Dockerfile
para copiar un archivo en ese contenedor, el archivo tiene permisos 644
y el dueño es root
. Por lo que entiendo, 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 a tomcat:tomcat
, Tengo un Operation not permitted
error.
¿Por qué no puedo cambiar los permisos de un archivo copiado en esa imagen?
Cómo se puede reproducir:
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 .
La salida de 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