首页 > 解决方案 > 下载 .tgz 文件并将其解压缩到 Dockerfile 中的不同路径

问题描述

如何下载 .tgz 文件,然后将其解压缩到 Dockerfile 中的不同目录。遵循https://docs.docker.com/develop/develop-images/dockerfile_best-practices/中提到的 Dockerfile 最佳实践,我尝试了类似的方法:

RUN mkdir -p /usr/src/things && curl -O https://example.com/big.tgz | tar -xvzf big.tgz -C /usr/src/things

尝试构建 docker 映像时,我看到以下错误:

tar (child): big.tgz: Cannot open: No such file or directory tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now

标签: dockerdockerfiletar

解决方案


从命令中删除f标志tar,如下所示:

RUN mkdir -p /usr/src/things && curl -O https://example.com/big.tgz | tar -xvz -C /usr/src/things

的输出curl被传送到tar而不是被写入文件,但tar -f会寻找一个不存在的文件big.tgz

查看选项-f, --file=ARCHIVE: Use archive file or device ARCHIVE

来源:tar 手册页


推荐阅读