如果设置了环境变量,请说ENV ADDRESSEE=world,然后在连接到固定字符串的入口点脚本中使用它,例如:
ENV ADDRESSEE=world
ENTRYPOINT ["./greeting", "--message", "Hello, world!"]
与world作为环境varible的价值,我该怎么办呢?我尝试使用,"Hello, $ADDRESSEE"但这似乎不起作用,因为它$ADDRESSEE确实是正确的。
world
"Hello, $ADDRESSEE"
$ADDRESSEE
您正在使用ENTRYPOINT 的 exec形式 。与 shell表单 不同, exec表单 不会调用命令shell。这意味着正常的外壳处理不会发生。例如,ENTRYPOINT [ "echo", "$HOME" ]将不会在$ HOME上进行变量替换。如果要进行shell处理,则可以使用 shell形式 或直接执行shell,例如:ENTRYPOINT [ "sh", "-c", "echo $HOME" ]。 当使用exec表单并直接执行shell时(例如在shell表单中),是由shell进行环境变量扩展,而不是docker。(来自Dockerfile参考)
ENTRYPOINT [ "echo", "$HOME" ]
ENTRYPOINT [ "sh", "-c", "echo $HOME" ]
在你的情况下,我会使用 外壳形式
ENTRYPOINT ./greeting --message "Hello, $ADDRESSEE\!"