dockerfile tar 无法读取:是一个目录

dockerfile tar 无法读取:是一个目录

这几天,我做了一个dockerfile。命令是:

在此输入图像描述

然后构建了dockerfile,它显示:

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

然后我猜测它可能已成为docker容器中的工作文件。然后我使用了命令:

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

删除容器,并且我还删除了未成功创建的图像。然后我还构建了dockerfile,但它也显示了这个问题。我不知道该如何处理。

最后,有人猜测它可能在主机中创建了 nginx-1.8.0.tar.gz 的工作文件,但我不知道是什么意思。

谢谢。请原谅我蹩脚的中文英语。

答案1

您应该使用 COPY 而不是 ADD。检查此链接

检查添加复制详尽描述其行为的文件。 ADD 和 COPY 功能相似,一般来说,优先选择 COPY。这是因为它比 ADD 更透明。 COPY 仅支持将本地文件基本复制到容器中,而 ADD 有一些不是立即显而易见的功能。

  • ADD 允许是 URL

  • 如果ADD的参数是可识别的压缩格式的压缩包,则将其解压

相关内容