Pip install Proxy with 403 Forbidden inside of a Dockerfile - python

I am trying to set up a docker container by using a Dockerfile that is inside of a corporate network behind a proxy.
Each time I am trying to execute the installation of different python packages by running the "pip install" command I am facing the following issue:
Step 9/20 : RUN pip install requests
---> Running in 98d679800849
Collecting requests
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Forbidden',))': /packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Forbidden',))': /packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Forbidden',))': /packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Forbidden',))': /packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Forbidden',))': /packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Forbidden',)))
My current Dockerfile contains the following commands:
# Base image
FROM python:3.6-slim
ENV http_proxy http://user:pw#server:port/
ENV https_proxy http://user:pw#server:port/
ENV HTTP_PROXY http://user:pw#server:port/
ENV HTTPS_PROXY http://user:pw#server:port/
RUN pip install --upgrade pip #thats working
RUN pip install requests #not working
RUN pip --proxy=http://user:pw#server:port/ install pandas #not working either
I tried several solutions like providing the build argument when executing the build command and passing the proxy settings inside for example. I dont have further clues why its not working for the running the pip command.
Thats even more strange since I am able to pull the base image which had not worked before defining the proxysettings by using the ENV variable. Anyone here that has a clue what causes this problem?

Related

Cannot pip install via proxy when on Conda env

I have some weird problem with pip install via proxy.
When I'm in the base Conda environment (/conda) pip install works fine (using proxy: HTTPS_PROXY env variable).
But when I'm switching to another Conda environment, I get proxy errors:
$ conda activate /User/bryan_env
$ pip install xmltodict
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError(0, 'Error'))': /simple/xmltodict/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError(0, 'Error'))': /simple/xmltodict/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError(0, 'Error'))': /simple/xmltodict/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError(0, 'Error'))': /simple/xmltodict/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError(0, 'Error'))': /simple/xmltodict/
ERROR: Could not find a version that satisfies the requirement xmltodict
ERROR: No matching distribution found for xmltodict
I've tried to use .condarc as well but had the same errors.
Important to say that this is all in Jupyter shell running in Kuberenetes pod.
Any idea what am I doing wrong here?
I had the same issue and it was solved by reinstalling pip in the environment using:
conda install -c anaconda pip
After that, try your pip install. It worked for me.

Why am I getting SSL issues inside docker with pip

I am facing issues lately with using pip while building a docker image. The base OS is ubuntu 18.04 and the error is as below
python3 -m pip install --upgrade pip
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:852)'),)': /simple/pip/
Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:852)'),)': /simple/pip/
Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:852)'),)': /simple/pip/
Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:852)'),)': /simple/pip/
Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: DECRYPTION_FAILED_OR_BAD_RECORD_MAC] decryption failed or bad record mac (_ssl.c:852)'),)': /simple/pip/
The same works in host OS with out issues. The docker version is Docker version 19.03.3, build a872fc2f86
Some of the troubeshooting I have done currently.
Adding DNS to /etc/docker/daemon.json
Restarting docker engine
Running with pip --trusted-host pypi.org install -U pip
Adding certificate and updating ca
Inspite of all the troubleshooting the issue still persists. Is there anyother way to get this working.
PS : This just started to happen from yesterday and there were no issues earlier.
try to add the cacert for Ubuntu in your Dockerfile:
RUN wget -P /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt
RUN update-ca-certificates
if that does not help you may see this question

'ProxyError('Cannot connect to proxy.', NewConnectionError

While installing any package for python in pycharm. Getting below error:-
Collecting py2neo
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb8e2e15780>: Failed to establish a new connection: [Errno 111] Connection refused',))': /simple/py2neo/
Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb8e2e155f8>: Failed to establish a new connection: [Errno 111] Connection refused',))': /simple/py2neo/
Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb8e2e15898>: Failed to establish a new connection: [Errno 111] Connection refused',))': /simple/py2neo/
Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb8e2e154a8>: Failed to establish a new connection: [Errno 111] Connection refused',))': /simple/py2neo/
Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb8e2e15400>: Failed to establish a new connection: [Errno 111] Connection refused',))': /simple/py2neo/
Could not find a version that satisfies the requirement py2neo (from versions: )
No matching distribution found for py2neo
I am experiencing exactly the same errors inside my Docker container, behind corporate Proxy. no matter which package I am trying to install.
I could nail it down to the following:
I am getting this error as soon as any proxy env var is set (either https_proxy or HTTPS_PROXY). The curious thing it doesn´t matter if this is the right proxy or not. Also, I experienced, that when one of these vars is set, pip seems to ignore what I pass via the --proxy switch during installation.
I got it working using the following workaround:
making sure that there is neither https_proxy (lowercase), not HTTPS_PROXY (uppercase) environment var is set.
run pip install using the following command
pip3 --proxy=http://<proxyHost>:<proxyPort> install py2neo
While this workaround works for me, I would still be interested to find a resolution for this, as
I am really curious about what´s going there
it is kind of annoying to have to specify the proxy in the command inside of the Dockerfile

pip install package via proxy

I tried to pip install using proxy, the proxy setting is correct because it works for npm install . what i tried is as below shown but got error message. any idea will be more than welcome!
set http_proxy=http://<username>:<password>#<proxy_server>:<port>
set https_proxy=https://<username>:<password>#<proxy_server>:<port>
pip install Flask
Collecting Flask
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required'))': /simple/flask/
Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required'))': /simple/flask/
Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required'))': /simple/flask/
Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required'))': /simple/flask/
Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required'))': /simple/flask/
Could not find a version that satisfies the requirement Flask (from versions: )
No matching distribution found for Flask
pip install packageName --proxy proxy_Server:portnumber
ex: pip install numpy --proxy https://myproxy#myserver.com:9090
From https://stackoverflow.com/a/33611028/2653663 it looks like it should be
set https_proxy=<domain><username>:<password>#<proxy_server>:<port>
So port instead of ip.
set http_proxy=... and set https_proxy=.... should be enough if the proxy works.
Please run the following command to make sure that it works:
curl https://google.com

Unable to download Django 2.0.7 in windows 10

DISCLAIMER - I am new to the world of Django and Python. If the question sounds stupid, please bear with me.
OS - Windows 10
Python Version Installed - 3.7
In the windows command prompt, I am trying the following command to download django on my system.
pip install django
pip3 install django
Collecting django
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))': /simple/django/
Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))': /simple/django/
Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))': /simple/django/
Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))': /simple/django/
Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))': /simple/django/
Could not find a version that satisfies the requirement django (from versions: )
No matching distribution found for django
If anybody could help me out or show some direction that would be great. Thanks in advance.
DISCLAIMER 2 :- This is an office environment and not my personal system so there should be restrictions on the firewall and other such good stuffs.
You can try downloading Django unofficial binaries form https://www.lfd.uci.edu/~gohlke/pythonlibs/ (use ctrl + F to find the package)
and install using
pip install "path to downloaded wheel file"
Edit: Offline installation of Django worked with the OP as he did not like to install the unofficial binaries.
Downloaded pytz from https://pypi.org/project/pytz/#files
And then downloaded Django from https://pypi.org/project/Django/#files
Installed wheel files of pytz first and Django next using pip.
This is because your internet proxy is blocking it. So download the installable(.whl,tz) from the server and copy to your local and install it with
pip install <downloaded file name>

Categories

Resources