我正在遵循使用docker和python应用程序的Docker-getting started指南,但是当docker到达命令时:
RUN pip install -r requirements.txt
我收到以下错误消息:
Step 4/7 : RUN pip install -r requirements.txt
---> Running in 98e18cf80a64
Collecting Flask (from -r requirements.txt (line 1))
Retrying (Retry(total=0, connect=None, read=None, redirect=None))
after connection broken by 'NewConnectionError
('<pip._vendor.requests.packages.urllib3.connection.Ver
ifiedHTTPSConnection object at 0x7fb43609ccd0>: Failed to establish a
new connection: [Errno 111] Connection refused',)': /simple/flask/
重复几次,然后出现:
Could not find a version that satisfies the requirement Flask (from -r
requirements.txt (line 1)) (from versions: )
No matching distribution found for Flask (from -r requirements.txt
(line 1))
The command '/bin/sh -c pip install -r requirements.txt' returned a
non-zero code: 1
pip似乎在容器外工作正常。有什么办法可以让它上网吗?我已经为docker设置了代理,除了这个(到目前为止),一切似乎都运行正常。
所有相关问题都涉及ubuntu或windows,不适用于mac。
提前致谢。
答案 0 :(得分:3)
我发现这是一个pip代理错误,并且能够通过将代理指定为pip install的参数来解决问题。所以而不是简单地拥有
#Install any needed packages specified in requirements.txt
RUN pip install -r requirements.txt
在我的Dockerfile
中,我有
#Install any needed packages specified in requirements.txt
RUN pip install -r requirements.txt --proxy http(s)://proxy:8080 --trusted-host pypi.python.org
--proxy http(s)://proxy:8080
指定pip使用的代理,--trusted-host pypi.python.org
使pypi成为可信主机,以防遇到ssl证书错误(在企业环境中很常见)。
答案 1 :(得分:0)
唯一适用于我的解决方案是在我的Dockerfile中包含以下行:
RUN pip install <package name> -i <package URL>
而不是将其包含在我的requirements.txt中。
当它位于requirements.txt中时,我认为Docker不在查看软件包URL。