如何在 Dockerfile 运行 中使用管道(ioredirection)?

How to use pipes(ioredirection) in Dockerfile RUN?

Dockerfile 中的以下行不起作用:

RUN git archive master | tar -x -C /path

错误信息:

fatal: Not a valid object name
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

如何解决这个问题?

您可以尝试 sh -c 命令

RUN sh -c 'git archive master | tar -x -C /path'

如果没有,您可以将该命令包含在脚本中,复制脚本并运行它。

以下变化如何:git archive master | tar xf - -C /path

看起来问题实际上出在您的 git 存储库(或您的 RUN 在其中执行的目录):

fatal: Not a valid object name

此错误来自 git,表明没有名为 master 的分支。