【发布时间】:2021-04-13 22:12:03
【问题描述】:
Docker 版本:20.10.2, build 2291f61
在 Dockerfile 中,是否可以使用密钥包含嵌入句点的 ENV 指令?例如:
ENV story.paragraph.port 2029
如果可以使用带句点的键声明 ENV 变量,那么以后是否可以在同一个 Dockerfile 中使用熟悉的 shell 插值来引用它们?
EXPOSE $story.paragraph.port
后一个 EXPOSE 指令对我来说是无效的。
我的用例:我有一个从 INI 文件加载其配置的 python 脚本。例如,我可能有这样的配置属性:
story.paragraph.word=helloworld
story.paragraph.length=256
python 逻辑从 INI 文件(默认情况下)或在环境中指定的覆盖中识别配置设置。这个想法是容器实例可以为story.paragraph.word 或story.paragraph.length 指定自己的环境变量,并且这些值将覆盖默认配置。
【问题讨论】:
-
对于你的服务运行的端口号之类的东西,你通常希望选择一个固定的端口号,并且可以硬编码例如
EXPOSE 2029。当您从容器外部转到docker run -p ...:2029时,无法引用此环境变量。 -
@DavidMaze -- 谢谢。这是一个很好的观点。
标签: docker dockerfile