【问题标题】:Downloading .tgz file and extracting it to different path in Dockerfile下载 .tgz 文件并将其解压缩到 Dockerfile 中的不同路径
【发布时间】:2020-12-12 06:50:36
【问题描述】:

如何下​​载 .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

【问题讨论】:

    标签: docker dockerfile tar


    【解决方案1】:

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

    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 manpage

    【讨论】:

      猜你喜欢
      • 2012-02-16
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-27
      • 1970-01-01
      • 2022-11-11
      相关资源
      最近更新 更多