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中解决。