我只是通过一个简单的示例来对 Docker 的运行有一个基本的了解。这是我的 Docker 镜像文件:
FROM python:3.7-alpine
# copy all the files to the container
COPY . /test
WORKDIR /test
# install dependencies
RUN pip install pip_system_certs --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host pypi.python.org
RUN pip install -r requirements.txt
# run the command
CMD ["python", "./test_script.py"]
Run Code Online (Sandbox Code Playgroud)
受信任的主机选项允许我们绕过公司网络安全设置并在 Windows 上内部安装软件包,它们似乎也适用于 Docker,但仅适用于某些软件包。例如,如果我的requirements.txt包含flask并请求一切都很好,但是pandas和numpy给我
警告:连接因“SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED]”) 中断后重试(重试(total=4,connect=None,read=None,redirect=None,status=None))证书验证失败:自签名证书链中的证书 (_ssl.c:1076)'))': /simple/numpy/
并失败了。我认为这对某些软件包有效但对其他软件包无效,这很奇怪。
任何帮助表示赞赏。
在 Windows 10 中使用 Docker 桌面。
我知道我公司的大公司代理删除了(大多数)正常证书并将它们重新包装在自签名证书中。这给我带来了很多类似的头痛。我通过以下方式解决了它:
这里步骤 3 的问题在于,对于不同风格的 Linux,执行此操作的具体方法是不同的。我对高山不太了解,但这些链接可能会为您指明大致正确的方向:
https: //blog.confirm.ch/adding-a-new-trusted-certificate-authority/
https://github。 com/gliderlabs/docker-alpine/issues/260
另外,还有一个好处 - 如果您在应用程序中使用 python 的requests库,则默认情况下它不会使用系统 CA 证书。如果这对您来说是个问题,请阅读有关在此处接受的答案中设置 REQUESTS_CA_BUNDLE 的信息:Python Requests - How to use system ca-certificates (debian/ubuntu)?
| 归档时间: |
|
| 查看次数: |
4594 次 |
| 最近记录: |