Python Docker-安装烧瓶失败

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

我在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
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中定义了代理参数时,为什么它不起作用。