提问
我在代理后面,我需要通过apt-get安装某些东西.我最好的是这个
ARG PROXY
ENV http_proxy=$PROXY
ENV https_proxy=$PROXY
RUN apt-get update -y && apt-get -y install ...
ENV http_proxy=
ENV https_proxy=
问题是,我之后需要取消设置这些环境变量.
任何想法如何做到少于5层?
最佳答案
您需要使用build-time variables(–build-arg).该标志允许您传递在Dockerfile的RUN指令中像常规环境变量一样被访问的构建时变量.而且,这些值不会像ENV值那样保留在中间或最终图像中.
因此,您的Dockerfile只有3行:
ARG http_proxy
ARG https_proxy
RUN apt-get update -y && apt-get -y install ...
并且您只需要在图像构建期间定义构建时变量http_proxy和/或https_proxy:
$docker build --build-arg http_proxy=http://<proxy_ip>:<proxy_port> --build-arg https_proxy=https://<proxy_ip>:<proxy_port> .