我正试图为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中设置http_proxy是不可能的,因为我的代理只在我建立映像时有效。如果其他人想要构建该映像,他将需要从Dockerfile中删除http_proxy环境变量。有没有其他方法可以实现这一目标?这似乎是一个非常常见的用例...
http_proxy=http://USERNAME:PASSWORD@my-proxy.com:3128/
。 - Alfonso Tienda