如果docker-compose.yml和dockerfile都指定具有优先权的env vars?

问题描述 投票:0回答:2
如果我有:

Dockerfile

和:

FROM ubuntu:18.04 ENV NAME=Dockerfile-wins CMD echo $NAME

当我跑步时,哪个会赢,而为什么?

docker-compose赢得了胜利,因为它覆盖了Dockerfile中的内容。 Dockerfile中指定的是默认值。并且可以使用Docker命令覆盖,这是Docker-Compose所做的。

文档中记录了这一点。 在封面上基本上是Docker-Compose正在运行类似的东西

docker-compose.yml
docker docker-compose
2个回答
5
投票

,如果我再次提起此讨论,但这是我发现涉及此问题的唯一一个。

docker文档中,如果Docker-Compose文件中有一个环境部分,则看来Dockerfile中定义的ENV参数被忽略。

5。在Env指令中的容器图像中设置。只有在没有Docker撰写的环境,Env_File或运行的docker构成条目时,才能在Dockerfile中进行任何ARG或ENV设置。

我的问题是:如果Docker-Compose文件中有一个环境部分,是否完全忽略了Dockerfile中定义的ENV参数,或者它们是否与Docker-Compose文件中定义的内容“合并/替换”?
i想在dockerfile中保留一个时间表容器(Postgres)的某些配置参数,并在Docker-Compose中添加其他配置参数,以修改“在运行时”。
提前感谢您 tops:best

0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.