为什么我在pip的docker内部出现SSL问题

时间:2019-10-23 16:36:30

标签: python docker ssl pip

我最近在构建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/

在主机操作系统中也可以正常工作。 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

尽管进行了所有故障排除,问题仍然存在。还有其他方法可以使它正常工作。

PS:这从昨天开始才开始发生,之前没有任何问题。

1 个答案:

答案 0 :(得分:1)

尝试在Dockerfile中添加Ubuntu的cacert:

Install-Package : NU1102: Unable to find package Microsoft.Data.OData with version (>= 7.6.1)
  - Found 36 version(s) in nuget.org [ Nearest version: 5.8.4 ]

如果这样做没有帮助,您可能会看到此question