Dockerfile:将RUN指令输出到variables中

我正在编写一个dockerfile文件,并希望将“ls”命令的输出放入一个variables中,如下所示:

$ file = ls / tmp / dir

在这里,“dir”里面只有一个文件。

使用dockerfile的以下RUN指令不工作RUN $ file = ls / tmp / dir

你不能保存一个variables,以便以后在其他Dockerfile命令中使用(如果这是你的意图)。 这是因为每个RUN发生在一个新的shell中。

但是,如果您只想捕获ls的输出,则应该可以在一个RUN复合命令中执行此操作。 例如:

 RUN file="$(ls -1 /tmp/dir)" && echo $file 

或者直接使用subshel​​l内联:

 RUN echo $(ls -1 /tmp/dir) 

希望这有助于你的理解。 如果你有一个实际的错误或问题要解决,我可以扩大而不是假设的答案。