python - 代理下dockerfile里面的pip

标签 python docker proxy pip

我正在尝试为 elasticsearch-curator 构建 Docker 镜像,

这里是 dockerfile:

FROM alpine:3.7

RUN adduser -S curator

RUN apk add --update \
    python \
    python-dev \
    py-pip \
    build-base \
  && pip install virtualenv \
  && pip install elasticsearch-curator \
  && rm -rf /var/cache/apk/*

USER curator

ENTRYPOINT [ "/usr/bin/curator"]

事情是我在代理下,所以我必须用以下方式构建我的图像:

docker build  --no-cache --build-arg HTTP_PROXY=http://xx.xx.xx.xx:xx -t elasticsearch-curator:5.4 .

但是当它想要获取virtualenv时,我得到:

Collecting virtualenv
  Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb8259ed350>, 'Connection to pypi.python.org timed out. (connect timeout=15)')': /simple/virtualenv/
  Retrying (Retry(total=3, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb8259ed210>, 'Connection to pypi.python.org timed out. (connect timeout=15)')': /simple/virtualenv/

我发现有人解决插入问题

ENV http_proxy http://proxy-chain.xxx.com:911/
ENV https_proxy http://proxy-chain.xxx.com:912/

在 Dockerfile 中,但对我来说不可能,因为我的代理只在我的建筑物上有效,所以如果另一个地方的另一个人想要构建图像,他将需要从 Dockerfile 中删除 http_proxy env var。

还有其他方法可以实现吗?这似乎是一个非常常见的用例......

最佳答案

我通过在命令行中添加 HTTPS_PROXY 解决了这个问题:

docker build  --no-cache --build-arg HTTP_PROXY=http://xx.xx.xx.xx:xx --build-arg HTTPS_PROXY=http://xx.xx.xx.xx:xx -t elasticsearch-curator:5.4 .

关于python - 代理下dockerfile里面的pip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48277599/

相关文章:

javascript - 重写反向代理页面上的所有链接

Node.js+express 代理 ssl

python - 迭代一个大数组,用大小相同但不同的较小数组填充它

python - 我如何在 Django 中定义 3 个以上模型之间的多对多关系?

amazon-web-services - 在 Amazon EC2 实例上的 Docker 容器中运行 iPython Notebook

maven - 如何为 docker shell gitlab runner 安装 maven

c# - 通过代理从 Azure Functions 连接到 REST API(c#)

python - 当从末尾索引列表时,为什么 Python 从索引 -1(而不是 0)开始?

python - 将 csv 中的值插入到 mysql 时日期值不匹配

docker - Docker Compose文件:从另一个文件引用环境变量