为什么我在使用pip的docker中遇到SSL问题



我最近在构建docker映像时遇到了使用pip的问题。基本操作系统是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/

这同样适用于没有问题的主机操作系统。docker版本是docker 19.03.3版本,构建a872fc2f86

我目前所做的一些巡回演出。

  1. 将DNS添加到/etc/docker/daemon.json
  2. 重新启动docker引擎
  3. 使用pip --trusted-host pypi.org install -U pip运行
  4. 添加证书并更新ca

尽管进行了所有故障排除,但问题仍然存在。还有其他方法可以让它发挥作用吗。

附言:这是从昨天开始的,之前没有任何问题。

尝试在Dockerfile:中添加Ubuntu的cacert

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

如果这没有帮助,你可以看到这个问题

最新更新