Docker环境变量未被重写

Docker环境变量未被重写,docker,environment-variables,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 这很有效,但如果我跑

考虑到我有一个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覆盖(甚至设置)entrypoint脚本中使用的环境变量吗?

在图像之前设置环境变量:

docker run-e“A_TEST=hello”高山环境


哇,这可能是一段时间以来我做的最愚蠢的事情之一。我想如果我遵循有关参数顺序的文档会有所帮助。谢谢