如何在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\!"