![](/img/trans.png)
[英]Append python path environment variable in docker-compose instead of dockerfile
[英]Define environment variable in Dockerfile or docker-compose?
看到这个 :
您可以使用'environment'键在服务的容器中设置环境变量,就像docker run -e VARIABLE = VALUE ...
另外,您可以在dockerfile中使用ENV定义环境变量。
区别在于:
Dockerfile
定义的环境变量不仅将在Dockerfile
docker build
,还将持久化到容器中。 这意味着,如果您在Dockerfile
docker run
时未设置-e
,它将仍然具有与Dockerfile
定义的相同的环境变量。
而在docker-compose.yaml
定义的环境变量仅用于docker-compose.yaml
docker run
。
也许下一个示例可以使您更清楚地了解:
Dockerfile的 :
FROM alpine
ENV http_proxy http://123
docker-compose.yaml:
app:
environment:
- http_proxy=http://123
如果您在Dockerfile
定义环境变量, Dockerfile
此映像使用的所有容器也将具有http_proxy
作为http://123
。 但是实际情况可能是在构建映像时需要此代理。 但是,该容器可能是由其他人运行的,可能不需要此代理或仅具有另一个http_proxy,因此他们必须在入口点中删除http_proxy
或仅在docker-compose.yaml
更改为另一个值。
如果您在docker-compose.yaml
定义环境变量,则用户可以docker-compose.yaml
docker-compose up
时选择自己的http_proxy,如果用户未配置docker-compose.yaml
,则不会设置http_proxy
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.