如何在ENTRYPOINT数组中使用Docker环境变量?

如果设置了环境变量,请说ENV ADDRESSEE=world,然后在连接到固定字符串的入口点脚本中使用它,例如:

ENTRYPOINT ["./greeting", "--message", "Hello, world!"]

world作为环境varible的价值,我该怎么办呢?我尝试使用,"Hello,

$ADDRESSEE"但这似乎不起作用,因为它$ADDRESSEE确实是正确的。

回答:

您正在使用ENTRYPOINT 的 。与 不同,

不会调用命令shell。这意味着正常的外壳处理不会发生。例如,ENTRYPOINT [ "echo", "$HOME" ]将不会在$

HOME上进行变量替换。如果要进行shell处理,则可以使用 或直接执行shell,例如:ENTRYPOINT [ "sh",

"-c", "echo $HOME" ]

当使用exec表单并直接执行shell时(例如在shell表单中),是由shell进行环境变量扩展,而不是docker。(来自Dockerfile参考)

在你的情况下,我会使用

ENTRYPOINT ./greeting --message "Hello, $ADDRESSEE\!"

以上是 如何在ENTRYPOINT数组中使用Docker环境变量? 的全部内容, 来源链接: utcz.com/qa/434697.html

回到顶部