![dockerfile tar 无法读取:是一个目录](https://linux22.com/image/95953/dockerfile%20tar%20%E6%97%A0%E6%B3%95%E8%AF%BB%E5%8F%96%EF%BC%9A%E6%98%AF%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95.png)
这几天,我做了一个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的参数是可识别的压缩格式的压缩包,则将其解压