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

前端之家收集整理的这篇文章主要介绍了如何在ENTRYPOINT数组中使用Docker环境变量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如果我设置一个环境变量,比如ENV ADDRESSEE = world,并且我想在入口点脚本中使用它,连接成一个固定的字符串,如:

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

世界是环境变数的价值,我该如何做?我尝试使用“你好,$ADDRESSEE”但似乎不起作用,因为它需要$ADDRESSEE字面上.

最佳答案
你使用的是ENTRYPOINT的exec形式.与shell窗体不同,exec窗体不调用命令shell.这意味着不会发生正常的shell处理.例如,ENTRYPOINT [“echo”,“$HOME”]不会在$HOME上执行变量替换.如果你需要shell处理,那么可以使用shell窗体或直接执行shell,例如:ENTRYPOINT [“sh”,“-c”,“echo”,“$HOME”].
当使用exec表单并直接执行一个shell时,就像shell表单一样,它是正在执行环境变量扩展的shell,而不是docker(从Dockerfile reference开始)

在你的情况下,我将使用shell形式

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

猜你在找的Docker相关文章