鉴于我有一个 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 的入口点脚本中使用的环境变量?
最佳答案
在图片前设置环境变量:
docker run -e "A_TEST=hello" alpine env
关于Docker 环境变量未被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48915360/