我有一个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/