如何在ENTRYPOINT数组中使用Docker环境variables?
如果我设置了一个环境variables,比如ENV ADDRESSEE=world
,我想在入口点脚本中使用它,并将其连接成一个固定的string,例如:
ENTRYPOINT ["./greeting", "--message", "Hello, world!"]
world
是环境variables的价值,我该怎么做? 我尝试使用"Hello, $ADDRESSEE"
但似乎并没有工作,因为它需要字面上的$ADDRESSEE
。
你正在使用ENTRYPOINT的execforms 。 与shellforms不同, execforms不会调用命令shell。 这意味着正常的shell处理不会发生。 例如, ENTRYPOINT [ "echo", "$HOME" ]
不会在$ HOME上进行variablesreplace。 如果你想要shell处理,那么使用shell的forms或者直接执行一个shell,例如: ENTRYPOINT [ "sh", "-c", "echo", "$HOME" ]
。
当使用exec表单并直接执行一个shell时,就像在shell表单的情况下一样,shell是在执行环境variables扩展,而不是docker (从Dockerfile引用 )
在你的情况下,我会使用shell的forms
ENTRYPOINT ./greeting --message "Hello, $ADDRESSEE\!"