tar:无法读取:docker中的目录

我想添加一个档案( .tar.gz ),并使用Dockerfile在图像创build过程中将其解压缩。

 ADD archive.tar.gz /archive.tar.gz RUN tar xzf archive.tar.gz 

当我想解压档案时,我得到如下信息:

 tar: /archive.tar.gz: Cannot read: Is a directory tar: At beginning of tape, quitting now tar: Error is not recoverable: exiting now 

这对我没有任何意义,因为文件archive.tar.gz不是一个目录。

运行/archive.tar.gz镜像的中间提交后,我可以看到/archive.tar.gz的确是一个目录。 这意味着在图像创build过程中,docker会自动提取档案。

现在我也可以在docker文档中find这个logging 。

(编辑:文件,例如.sql.gz ,不会在添加时解压缩)

如果您希望档案保持原样使用COPY ,而不是ADD

对于那些最近在使用ADD命令引用远程 URL的时候遇到这个问题的人来说,这是Docker 17.06.0-ce (2017-06-28)一个问题。

从Dockers发布说明 :

注意:在引用远程.tar.gz文件时,Docker 17.06.0在映像生成器中存在一个问题,导致Dockerfile的ADD指令的行为发生变化。 这个问题将在Docker 17.06.1中解决。