在他们的官方网站(https://docs.docker.com/reference/builder/#env)中,Docker支持声明:
ENV指令将环境变量设置为值 。该值将传递给所有未来的RUN指令。 这在功能上等同于在命令前加上< key> =<值>
我试过了:
http_proxy=<PROXY> docker build .
然而,这似乎没有带来与添加ENV http_proxy =&lt;相同的效果。 PROXY&gt;在Dockerfile里面。为什么???
答案 0 :(得分:2)
这在功能上等同于在命令前加上&lt; key&gt; =&lt;值&gt;
这并不意味着它与前缀docker build
命令相同,因为它是在容器外执行的命令。
这意味着使用ENV与在容器内运行的前缀命令相同。
例如,等效的RUN语句如下所示:
RUN http_proxy=<PROXY> curl https://www.google.com
或者在容器内执行的等效命令(通过shell):
$ http_proxy=<PROXY> curl https://www.google.com