Como fazer o conda usar o proxy do host dentro de um contêiner do Docker

4

Aqui está a situação. Estou usando o Docker com a imagem continuumio / anaconda3. Eu tenho o servidor (Ubuntu 16.04 LTS) configurado para usar o proxy corporativo com o pacote CNTLM. Internet funciona muito bem no host através do proxy local.

Eu também modifiquei o cntlm.conf para ouvir a interface de rede virtual do Docker (docker0) em 172.17.0.1.

O Docker também está configurado corretamente e eu posso puxar imagens sem problemas. Depois de implantar um contêiner com uma imagem do Anaconda e configurar o contêiner para usar o proxy do host exportando as variáveis de env http_proxy="http://172.17.0.1:3128" e assim por diante, posso usar wget e curl para fazer o download.

O problema vem com conda . Eu segui a documentação e também exportei as variáveis HTTP_PROXY e HTTPS_PROXY . Isso não funciona. Então eu criei um arquivo .condarc no diretório /root com:

proxy_servers:
  https: localhost:3128
  http: localhost:3128

Também experimentou ssl_verify: False .

Nada parece funcionar . Eu sempre recebo o seguinte erro:

CondaHTTPError: HTTP None None for url <https://repo.continuum.io/pkgs/free/linux-64/repodata.json.bz2>
Elapsed: None

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
ProxyError(MaxRetryError("HTTPSConnectionPool(host='repo.continuum.io', port=443): Max retries exceeded with url: /pkgs/free/linux-64/repodata.json.bz2 (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7fd88e1d1240>: Failed to establish a new connection: [Errno 111] Connection refused',)))",),)
    
por Iyán 04.04.2017 / 08:30

1 resposta

2

Tente criar no Dockerfile estas vars:

ENV http_proxy="x.x.x.x:xxxx"
ENV https_proxy="x.x.x.x:xxxx"

Esse x.x.x.x não é 127.0.0.1. Esse ip deve ser o ip da LAN padrão do proxy cntlm.

    
por 04.04.2017 / 08:49