dockerfile tar não pode ler: É um diretório

2

Hoje em dia, fiz um dockerfile. O comando é:

Em seguida, criou o dockerfile, mostrou:

tar (child): nginx-1.8.0.tar.gz: Cannot read: Is a directory
tar (child): At beginning of tape, quitting now
tar (child): Error is not recoverable: exiting now

gzip: stdin: unexpected end of file
tar: Child returned status 2
tar: Error is not recoverable: exiting now
The command '/bin/sh -c cd /usr/local/src/ &&  tar zxvf nginx-1.8.0.tar.gz' returned a non-zero code: 2

Então imaginei que talvez tivesse sido feito o arquivo de trabalho no contêiner docker. Então eu usei o comando:

docker rm -f $(docker ps -a -q) 

para excluir os contêineres e também excluí as imagens que não são bem-sucedidas para criar. Então eu também construí o dockerfile, mas ele também mostrou essas questões. Eu não sei como lidar com isso.

Finalmente, alguém adivinhe que talvez tenha criado o arquivo de trabalho do nginx-1.8.0.tar.gz no host, mas não sei o que significa.

Obrigado. Por favor, perdoe meu pobre inglês chinês.

    
por kevintao 06.10.2016 / 15:01

1 resposta

2

Você deve usar COPY em vez de ADD. Verifique este link

Verifique as documentações ADD e COPY para obter uma descrição exaustiva de seus comportamentos. ADD e COPY são funcionalmente semelhantes, de um modo geral, COPY é o preferido. Isso é porque é mais transparente que o ADD. O COPY suporta apenas a cópia básica de arquivos locais no contêiner, enquanto o ADD possui alguns recursos que não são imediatamente óbvios.

  • ADD permite ser um URL

  • Se o parâmetro de ADD for um arquivo em um formato de compactação reconhecido, ele será descompactado

por 06.10.2016 / 15:27

Tags