代码之家  ›  专栏  ›  技术社区  ›  jeremysprofile

在Mac上使用带代理和无代理的Docker

  •  0
  • jeremysprofile  · 技术社区  · 5 年前

    tl;dr:docker拒绝承认 --build-arg no_proxy 在Docker for Mac社区版18.06和 probably some other 版本 as well

    我是公司代理人的幕后黑手。

    我有一个装台词的文件

    RUN yum install -y <something-trivial>
    RUN curl -o myzip.zip http://<some-internal-website>/myzip.zip
    

    我需要 --build-arg http_proxy=$http_proxy 这样我就可以 yum 安装,但需要 --build-arg no_proxy=$no_proxy 这样我就可以让卷发工作了。

    当我奔跑 docker build --no-cache --build-arg http_proxy=$http_proxy --build-arg no_proxy=$no_proxy . -t test ,就好像我在运行命令时 no_proxy 完全指定了build参数。我似乎并不孤单在这一点上,如上面所链接的码头工人问题所示。

    1 回复  |  直到 5 年前
        1
  •  0
  •   jeremysprofile    5 年前

    唯一能解决问题的方法就是 ENV 我的命令 Dockerfile , 此外 --build-arg 上面指定的。

    我的意思是 只有 对我有用的配置正在做

    docker build --build-arg http_proxy=$http_proxy --build-arg \ 
    https_proxy=$https_proxy . -t test
    

    使用指定的Dockerfile

    ENV NO_PROXY ".local,localhost,<some-internal-website>,..."
    

    在任何需要的命令之前 no_proxy 待设置。其中一个更让人恼火的部分是,我无法在dockerfile中设置“env http_proxy”http://。这完全被Docker忽略了。

    另外,我建议您设置手动代理配置( ⌘, “代理”,“手动代理配置”)而不是系统,因为我已经拥有了更可靠的系统。

    DR:SET http_proxy https_proxy 具有 --build-arg http_proxy=$http_proxy 在命令行上;设置 NONY代理 通过 ENV NO_PROXY "<contents of no_proxy>" 在你的文件里。