Não é possível (forçar) remover o diretório na compilação do Docker

2

Com este Dockerfile:

FROM php:5.4-fpm
RUN apt-get -qqy update \
 && apt-get -qqy install git \
                     libcurl4-gnutls-dev \
                     libmcrypt-dev \
                     libpng12-dev \
                     libxml2-dev \
                     libxslt-dev \
 && docker-php-ext-install curl \
                       bcmath \
                       gd \
                       mcrypt \
                       mysql \
                       soap \
                       xsl \
                       zip \
 && rm -rf /var/lib/apt/lists

Eu recebo o erro

rm: cannot remove '/var/lib/apt/lists': Directory not empty

Mas se eu separar a instrução rm em outra RUN , de repente o erro desaparece.

FROM php:5.4-fpm
RUN apt-get -qqy update \
 && apt-get -qqy install git \
                     libcurl4-gnutls-dev \
                     libmcrypt-dev \
                     libpng12-dev \
                     libxml2-dev \
                     libxslt-dev \
 && docker-php-ext-install curl \
                       bcmath \
                       gd \
                       mcrypt \
                       mysql \
                       soap \
                       xsl \
                       zip
RUN rm -rf /var/lib/apt/lists

rm é apenas /bin/rm no contêiner php:5.4-fpm . Por que docker build não consegue remover /var/lib/apt/lists no primeiro caso e por que ele está saindo com um status de saída diferente de zero mesmo com o -f sinalizador?

    
por kojiro 13.04.2015 / 16:28

1 resposta

4

De acordo com a discussão de desenvolvimento do Docker, esse é o problema número 1 conhecido nos documentos do Docker. Aqui está a referência atual da nota de lançamento.

Permissões de arquivo inesperadas em contêineres Uma idiossincrasia no AUFS impede que as permissões se propaguem previsivelmente entre as camadas superior e inferior. Isso pode causar problemas ao acessar chaves privadas, instâncias de banco de dados, etc. Para obter informações completas e soluções alternativas, consulte o Problema 783 do Github.

A solução alternativa mencionada pode ser encontrada no Github aqui

    
por 15.04.2015 / 22:12

Tags