docker - 在Dockerfile中使用代理运行apt-get

标签 docker proxy environment-variables aptitude

我在代理后面,我需要通过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> . 

关于docker - 在Dockerfile中使用代理运行apt-get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48749200/

相关文章:

PowerShell:在 'IF' 语句中使用 $env:userprofile

Docker 卡在构建和其他命令上

本地驱动程序的 docker-compose 卷语法以挂载文件

docker - docker中的nginx反向代理

python - 获取当前环境

eclipse - 为整个项目设置环境变量

macos - Docker/Boot2Docker : Set HTTP/HTTPS proxies for docker on OS X

c# - 在 .NET 中创建有效的数据包嗅探器

带有 Google OAuth 2.0 的 Nginx 代理

mysql - nginx 作为 docker 中 mysql 服务器的代理