我想添加一个存档(.tar.gz)并在映像创建过程中使用 Dockerfile 将其解压。

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 不是目录。

有帮助吗?

解决方案

运行 docker 镜像的中间提交后,我可以看到, /archive.tar.gz 确实是一个目录。这意味着 docker 在创建映像期间添加存档时会自动提取存档。

现在我还可以找到这个记录在 码头工人文档.

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

其他提示

如果您希望存档保持原样,请使用 COPY, , 不是 ADD.

对于最近在参考时遇到此问题的其他人 偏僻的 网址及其 ADD 命令,这是 Docker 的问题 17.06.0-ce (2017-06-28).

Docker 发行说明:

笔记:Docker 17.06.0 的映像生成器存在问题,导致引用远程 .tar.gz 文件时 Dockerfile 的 ADD 指令的行为发生变化。该问题将在 Docker 17.06.1 中得到修复。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top