如何在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