Docker环境变量未被覆盖

时间:2018-02-21 20:59:39

标签: docker environment-variables

鉴于我有一个像以下的dockerfile:

ARG MAX_MEMORY_PER_NODE="10GB"
ENV P_MAX_MEMORY_PER_NODE="${MAX_MEMORY_PER_NODE}"
ENTRYPOINT ["/var/p/entrypoint.sh"]

并且entrypoint.sh执行类似的操作:

echo "Max memory ${P_MAX_MEMORY_PER_NODE}"

如果我使用默认值运行容器,我希望

Max Memory 10GB

这有效,但如果我跑

docker run me/mycontainer:latest -e P_MAX_MEMORY_PER_NODE=1GB

脚本仍然使用默认值(不打印1GB)。事实上,如果我跑:

docker run me/mycontainer:latest -e A_TEST=Hello

剧本已经

echo "My test: ${A_TEST}"

输出

My test:

我在这里做错了什么?什么不能覆盖(甚至设置)来自docker run的入口点脚本中使用的环境变量?

1 个答案:

答案 0 :(得分:2)

在图像前设置环境变量:

  

docker run -e“A_TEST = hello”alpine env