【问题标题】:How to run pip3+git from behind proxy with docker?如何使用 docker 从代理后面运行 pip3+git?
【发布时间】:2017-01-05 16:30:42
【问题描述】:

如何将 git 代理设置为使用 pip3 运行时?

遵循https://github.com/nouiz/Theano-Docker的指示

当我运行docker build -t theano_simple -f Dockerfile.0.8.X.jupyter.cuda.simple . 时,我收到错误:

fatal: unable to connect to github.com:
github.com[0: 192.30.253.112]: errno=Connection timed out
github.com[1: 192.30.253.113]: errno=Connection timed out

在 docker 文件中添加代理参数:

RUN git config --global http.proxy myproxy:1111
RUN git config --global https.proxy myproxy:1111

ENV HTTPS_PROXY=https://myproxy:1111 ENV HTTPS_PROXY=https://myproxy:1111 ENV https_proxy=https://myproxy:1111 ENV https_proxy=https://myproxy:1111

这里是原始 docker 文件:https://github.com/nouiz/Theano-Docker/blob/master/Dockerfile.0.8.X.jupyter.cuda.simple

    FROM nvidia/cuda:7.5-cudnn5-devel

    MAINTAINER FIX ME <fixme@example.com>

    RUN apt-get update && apt-get install -y --no-install-recommends \
            git \
            libopenblas-dev \
            libzmq3-dev \
            python3-dev \
            python3-numpy \
            python3-pip \
            python3-scipy && \
        rm -rf /var/lib/apt/lists/*

    RUN pip3 install \
            ipykernel \
            jupyter && \
        python3 -m ipykernel.kernelspec

    RUN pip3 install nose nose-parameterized

    ENV THEANO_VERSION 0.8.2

    RUN pip3 install git+git://github.com/theano/theano.git@rel-${THEANO_VERSION}

    COPY theanorc /root/.theanorc

    COPY start-notebook.sh /usr/local/bin/

    COPY jupyter_notebook_config_simple.py /root/.jupyter/jupyter_notebook_config.py

    COPY notebook /opt/notebook

    RUN apt-get update && apt-get install -y curl
    RUN mkdir /opt/data && cd /opt/data && curl http://www.iro.umontreal.ca/~lisa/deep/data/mnist/mnist_py3k.pkl.gz -o mnist.pkl.gz

使用代理命令修改 docker 文件:

     FROM nvidia/cuda:7.5-cudnn5-devel

        MAINTAINER FIX ME <fixme@example.com>

        RUN apt-get update && apt-get install -y --no-install-recommends \
                git \
                libopenblas-dev \
                libzmq3-dev \
                python3-dev \
                python3-numpy \
                python3-pip \
                python3-scipy && \
            rm -rf /var/lib/apt/lists/*

        RUN pip3 install \
                ipykernel \
                jupyter && \
            python3 -m ipykernel.kernelspec

        RUN pip3 install nose nose-parameterized

        ENV THEANO_VERSION 0.8.2

ENV HTTPS_PROXY=https://myproxy:1111
ENV HTTPS_PROXY=https://myproxy:1111
ENV https_proxy=https://myproxy:1111
ENV https_proxy=https://myproxy:1111

        RUN pip3 install git+git://github.com/theano/theano.git@rel-${THEANO_VERSION}

    RUN git config --global http.proxy myproxy:1111
    RUN git config --global https.proxy myproxy:1111

        COPY theanorc /root/.theanorc

        COPY start-notebook.sh /usr/local/bin/

        COPY jupyter_notebook_config_simple.py /root/.jupyter/jupyter_notebook_config.py

        COPY notebook /opt/notebook

        RUN apt-get update && apt-get install -y curl
        RUN mkdir /opt/data && cd /opt/data && curl http://www.iro.umontreal.ca/~lisa/deep/data/mnist/mnist_py3k.pkl.gz -o mnist.pkl.gz

我也尝试将代理作为pip3 install 的一部分传递:pip3 install --proxy myproxy:1111 命令但同样的错误。

【问题讨论】:

  • 如果在 docker 运行并安装后执行到 docker 会发生什么?这行得通吗?

标签: python git docker proxy


【解决方案1】:
fatal: unable to connect to github.com:
github.com[0: 192.30.253.112]: errno=Connection timed out
github.com[1: 192.30.253.113]: errno=Connection timed out

错误消息似乎是由 RUN pip3 install 引起的,因此为 git 添加代理对此不起作用。

您可以尝试在pip install 之前添加HTTPS_PROXY 环境。

ENV HTTPS_PROXY=https://myproxy:1111

Using pip behind a proxy

【讨论】:

  • 谢谢,已经尝试过了,但同样的错误。我已经更新了问题。
  • @blue-sky 奇怪!你能测试你的代理是否正常工作? curl -x https://myproxy:1111 https://github.com/theano/theano,如果是这样,请将您的pip install 更改为RUN pip3 install git+https://github.com/theano/theano.git@rel-${THEANO_VERSION}
  • 似乎git://github.com/xxxHTTPS_PROXY 不匹配。
  • 请随时从stackoverflow.com/questions/41262284/… 链接到此答案,我将分享要点。
【解决方案2】:

您是否尝试过以下方法?

pip3 install yourmodulename --trusted-host pypi.python.org

【讨论】:

  • 试过但收到了(我包含了'=' post --trusted-host):用法:pip install [options] ... pip install [options] -r ... pip install [options] [-e] ... pip install [options] [-e] ... pip install [options] 。 .. 没有这样的选项:--trusted-host
【解决方案3】:

问题可能是您位于公司代理/防火墙后面,并且传出连接在某处被阻止。一个简单的解决办法就是改成https版本的命令:

变化:

pip3 install git+git://github.com/theano/theano.git@rel-${THEANO_VERSION}

收件人:

pip3 install git+https://github.com/theano/theano.git@rel-${THEANO_VERSION}

或者:

您可能想尝试这里的步骤:https://help.github.com/articles/using-ssh-over-the-https-port/

这将通过大多数公司允许的 https 协议重定向所有 git 连接:)

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-04
    • 2013-02-24
    • 2011-07-28
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    相关资源
    最近更新 更多