我有一个Dockerfile,其中包含一些看起来像作为标签传递的“$ MYVARIABLE”文本(这些字符串用于自定义工具)。

我注意到,一旦成功构建此Dockerfile,结果图像的docker inspect将显示空格,其中这些$ MYVARIABLE样式字符串位于Dockerfile中。我只希望将'$ MYVARIABLE'作为文字字符串传递,我根本不希望将其视为变量。

我的第一个猜测是,即使我没有使用Dockerfile ARG或ENV语法,我的shell仍在尝试将它们扩展为常规变量。我得出结论不是这样。所以我的问题是这些琴弦在哪里?

最佳答案

您需要在dockerfile中将传递的var声明为ARG
也就是说,如果您想使用var MY_ARG作为Label,则必须以以下方式声明它:

ARG MY_ARG

LABEL "My Arg"=$MY_ARG

如果您已经这样做了,也许问题在于这些变量的初始化/传递方式。也许有些代码会有所帮助。

关于docker - dockerfile中缺少dockerfile中的shell变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41951731/

10-16 22:25