【问题标题】:pip install doesn't work correctly in dockerpip install 在 docker 中无法正常工作
【发布时间】:2017-04-05 22:18:04
【问题描述】:

问题

在构建映像期间我无法安装任何软件包。从 docker hub 拉取是可以的,但是当 docker 尝试使用网络构建图像时出现问题。例如,如果我尝试运行:

$ docker build -t sample-image:latest .

... 上面命令使用的 Dockerfile 有以下行:

RUN pip install -r requirements.txt

...然后我得到下一个错误:

Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'NewConnectionError('<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7fdbe102e278>: Failed to establish a new connection: [Errno -2] Name or service not known',)': /simple/sanic/

Could not find a version that satisfies the requirement sanic (from -r requirements.txt (line 1)) (from versions: )
No matching distribution found for sanic (from -r requirements.txt (line 1))

...更新ubuntu包时出现同样的错误


信息

docker 和 docker compose 由官方 docker 文档安装(没有任何更改)。

Server Version: 17.03.1-ce
Storage Driver: aufs
Kernel Version: 4.8.0-45-generic
Operating System: Ubuntu 16.04.2 LTS
Architecture: x86_64
CPUs: 2
Total Memory: 3.763 GiB

requirements.txt:

sanic
asyncpg
asyncio
uvloop

Dockerfile:

FROM python:3.5-onbuild

WORKDIR /usr/src/app

# https://github.com/vishnubob/wait-for-it
CMD ["./run/wait-for-it.sh", "db:5432", "--", "python", "index.py"]

附言

我测试了更多的决定,但还没有任何帮助。谢谢大家的帮助:)

【问题讨论】:

  • 你是如何在 requirements.txt 中定义 sanic 依赖的? /simple/sanic/ 看起来很奇怪
  • shizhz,不幸的是,上面的决定对我没有帮助(图像构建的行为没有改变)......你还有其他想法吗?
  • Matt, requirements.txt 很清楚(看上面)。所有这些代码在另一台具有其他硬件但软件相同的计算机上工作得非常好。这让我很困惑:(
  • @YuriiRabeshko 尝试编辑/etc/NetworkManager/NetworkManager.conf并注释掉dns=dnsmasq部分,重启网络和docker再试一次

标签: linux networking docker ubuntu-16.04


【解决方案1】:

感谢Salem!以下决定帮助了我:

尝试编辑 /etc/NetworkManager/NetworkManager.conf 并注释掉 dns=dnsmasq 部分,重启网络和docker再试一次

【讨论】:

【解决方案2】:

如果在主机上安装软件包时 pip install 成功但在 docker 构建期间没有成功,那么对我有用的解决方案是让主机的 /etc/pip.conf 中的 index-url 出现在 docker 映像中。

示例:

如果主机的/etc/pip.conf 包含:

  • index-url = https://example.com/blah/blah/blah

然后在安装任何 pip 包之前将以下行添加到Dockerfile

  • RUN echo '[global]\nindex-url = https://example.com/blah/blah/blah\ntrusted-host = https://example.com' &gt; /etc/pip.conf

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-24
    • 2021-11-25
    • 2019-10-19
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多