Estou tentando adicionar um arquivo a uma imagem do Docker Construída a partir do oficial tomcat
imagem. Essa imagem não parece ter direitos de root, pois estou logado como usuário tomcat
se eu correr bash:
docker run -it tomcat /bin/bashtomcat@06359f7cc4db:/usr/local/tomcat$
Se eu instruir um Dockerfile
para copiar um arquivo para esse contêiner, o arquivo tem permissões 644
e o proprietário é root
. Pelo que entendi, isso parece ser razoável, pois todos os comandos no Dockerfile são executados como root. No entanto, se eu tentar alterar a propriedade desse arquivo para tomcat:tomcat
, Eu recebo um Operation not permitted
erro.
Por que não posso alterar as permissões de um arquivo copiado para essa imagem?
Como pode ser reproduzido:
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 .
A saída 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