![在 Docker 中运行 Python 时出现 407 代理身份验证错误,但在本地环境中运行时不会出现此错误](https://linux22.com/image/774901/%E5%9C%A8%20Docker%20%E4%B8%AD%E8%BF%90%E8%A1%8C%20Python%20%E6%97%B6%E5%87%BA%E7%8E%B0%20407%20%E4%BB%A3%E7%90%86%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E9%94%99%E8%AF%AF%EF%BC%8C%E4%BD%86%E5%9C%A8%E6%9C%AC%E5%9C%B0%E7%8E%AF%E5%A2%83%E4%B8%AD%E8%BF%90%E8%A1%8C%E6%97%B6%E4%B8%8D%E4%BC%9A%E5%87%BA%E7%8E%B0%E6%AD%A4%E9%94%99%E8%AF%AF.png)
我遇到了一个奇怪的问题。当我在本地机器上运行脚本并通过(付费和经过身份验证的)代理发出请求时,它运行正常。但是,当我将应用程序容器化并尝试再次运行时,我收到以下错误:
File "/usr/local/lib/python3.7/site-packages/requests/adapters.py", line 513, in send
raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host='www.myawesomesite.com', port=443): Max retries exceeded with url: /my-url/model?opname=metadata (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required')))
我要强调一下,我的 Python 代码完全相同,包括检索和使用代理凭据时。奇怪的是,我已经使用同样的技术一年多了,但现在突然看到这个问题。Docker 对代理进行身份验证的方式有什么不同吗?有人知道是什么导致了这个问题吗?
作为参考,这是我的 DockerFile 的要点:
FROM python:3.7.5-slim
WORKDIR /usr/src/app
RUN python3 -m pip install \
requests \
mysql-connector \
pymongo \
numpy \
dnspython \
simple_watchdog_timer
COPY myScript1.py .
COPY mySupportingModule1.py .
ENTRYPOINT ["python3", "myScript1.py"]