Esta é uma mensagem de erro que recebo ao construir uma imagem Docker:
Etapa 18: EXECUTE mkdir / var / www / app && chown luqo33: www-data / var / www / app ---> Executando em 7b5854406120 mkdir: não é possível criar o diretório '/ var / www / app': Não existe esse arquivo ou diretório
Este é um fragmento do Dockerfile que causa o erro:
FROM ubuntu:14.04
RUN groupadd -r luqo33 && useradd -r -g luqo33 luqo33
<installing nginx, fpm, php and a couple of other things>
RUN mkdir /var/www/app && chown luqo33:www-data /var/www/app
VOLUME /var/www/app
WORKDIR /var/www/app
"mkdir: não é possível criar o diretório '/ var / www / app': Nenhum arquivo ou diretório" soa tão sem sentido - é claro que esse diretório não existe. Eu quero criar isso. O que há de errado aqui?
mkdir /var/www/app
em um sistema que não tivesse um/var/www
sem ele.Respostas:
O problema é que
/var/www
também não existe emkdir
não é recursivo por padrão - ele espera que o diretório pai imediato exista.Usar:
... ou instale um pacote que cria um
/var/www
antes de chegar a este ponto em seu Dockerfile.fonte
/var/www
?Ao criar subdiretórios pendurados em um diretório pai não existente, você deve passar a
-p
sinalização paramkdir
... Atualize seu Dockerfile comEu testei isso e está correto.
fonte
Você também pode simplesmente usar
Ele criará automaticamente as pastas se elas não existirem.
Em seguida, volte para o diretório em que você precisa estar.
fonte
Além dos casos de uso anteriores, você também pode usar o Docker Compose para criar diretórios, caso queira criar novas pastas fictícias em
docker-compose up
:fonte