Python Docker-安装烧瓶失败
我在Ubuntu 16.04上运行docker ce。构建自定义应用程序时失败,因为它无法安装Flask,这是Python应用程序所必需的 我支持我组织的代理,所以我也使用了内联代理。但它仍然失败了 Dockerfile:Python Docker-安装烧瓶失败,python,docker,Python,Docker,我在Ubuntu 16.04上运行docker ce。构建自定义应用程序时失败,因为它无法安装Flask,这是Python应用程序所必需的 我支持我组织的代理,所以我也使用了内联代理。但它仍然失败了 Dockerfile: RUN pip install -r requirements.txt \ --proxy https://10.70.52.146:3128 \ --trusted-host pypi.python.org FROM python:3.6
RUN pip install -r requirements.txt \
--proxy https://10.70.52.146:3128 \
--trusted-host pypi.python.org
FROM python:3.6
ADD requirements.txt requirements.txt
RUN pip install -r requirements.txt
requirements.txt:
Flask
Redis
输出:
Step 7/10 : RUN pip install -r requirements.txt --proxy https://10.70.52.146:3128 --trusted-host pypi.python.org<br/>
---> Running in 3d92822e4d79<br/>
Collecting Flask (from -r requirements.txt (line 1))
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLEOFError(8, u'EOF occurred in violation of protocol (_ssl.c:661)'),)': /packages/7f/e7/08578774ed4536d3242b14dacb4696386634607af824ea997202cd0edb4b/Flask-1.0.2-py2.py3-none-any.whl<br/>
Could not install packages due to an EnvironmentError:<br/>HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/7f/e7/08578774ed4536d3242b14dacb4696386634607af824ea997202cd0edb4b/Flask-1.0.2-py2.py3-none-any.whl (Caused by SSLError(SSLEOFError(8, u'EOF occurred in violation of protocol (_ssl.c:661)'),))
The command '/bin/sh -c pip install -r requirements.txt --proxy http://10.70.52.146:3128 --trusted-host pypi.python.org' returned a non-zero code: 1
步骤7/10:运行pip安装-r requirements.txt——代理https://10.70.52.146:3128 --可信主机pypi.python.org
--->在3d92822e4d79中运行
收集瓶(来自-r requirements.txt(第1行))
“SSLEROR(SSLEOFError(8,u'EOF发生违反协议(_ssl.c:661))”:/packages/7f/e7/08578774ed4536d3242b14dacb46864607af824ea997202cd0edb4b/Flask-1.0.2-py2.py3无任何。whl
由于环境错误,无法安装程序包:
HTTPSConnectionPool(host='files.pythonhosted.org',port=443):url超过了最大重试次数:/packages/7f/e7/08578774ed4536d3242b14dacb463686634607af824ea997202cd0edb4b/Flask-1.0.2-py2.py3-none-any.whl(由SSLError(8,u'EOF发生违反协议(\u ssl.c:661)'),))
命令'/bin/sh-c pip install-r requirements.txt--proxyhttp://10.70.52.146:3128 --受信任的主机pypi.python.org'返回一个非零代码:1
此错误指的是什么?将
HTTP\u代理
和HTTPS\u代理
环境变量设置为生成参数应该可以解决问题
Dockerfile:
RUN pip install -r requirements.txt \
--proxy https://10.70.52.146:3128 \
--trusted-host pypi.python.org
FROM python:3.6
ADD requirements.txt requirements.txt
RUN pip install -r requirements.txt
生成命令:
docker build --build-arg HTTP_PROXY=https://10.70.52.146:3128 --build-arg HTTPS_PROXY=https://10.70.52.146:3128 .
在Dockerfile之外设置代理地址也是一种更好的做法,因为这样可以让您从组织网络之外重用此Dockerfile。您节省了我的时间。在过去的两天里,我一直在尝试这个方法,但我仍然想知道,当Dockerfile中定义了代理参数时,为什么它不起作用。