Почему я получаю проблемы с SSL в докере с pip - PullRequest
1 голос
/ 23 октября 2019

В последнее время у меня возникают проблемы с использованием pip при создании изображения docker. Базовая ОС - Ubuntu 18.04, и ошибка выглядит следующим образом:

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/

То же самое работает в хост-ОС без проблем. Версия докера - версия 19.03.3 Docker, сборка a872fc2f86

Некоторые из проблем, с которыми я столкнулся на данный момент.

  1. Добавление DNS в /etc/docker/daemon.json
  2. Перезапуск Dockerengine
  3. Работает с pip --trusted-host pypi.org install -U pip
  4. Добавление сертификата и обновление ca

Несмотря на устранение неполадок, проблема все еще сохраняется. Есть ли другой способ заставить это работать.

PS: Это только начало происходить со вчерашнего дня, и раньше проблем не было.

1 Ответ

1 голос
/ 24 октября 2019

попробуйте добавить cacert для Ubuntu в ваш 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

, если это не поможет, вы можете увидеть этот вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...