为什么 Docker 找不到现有的包?

问题描述 投票:0回答:2

我是 Docker 的新手,所以这对某些人来说可能是显而易见的。我运行的是 Ubuntu 18.04TLS。

我想在图像中安装“python3-protobuf”包。我尝试使用 Dockerfile 中的以下行来执行此操作:

...
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        python3-protobuf \
        <some other packages to be installed>
...

当我运行“docker build -t myImageName”时,我收到消息:

E:无法找到包 python3-protobuf

我正在安装很多软件包,但这是唯一给我带来问题的软件包。

我知道包名称是正确的,因为在终端中,当我“apt搜索”它时,它被发现了。此外,在 dockerfile 中,我执行了推荐的“更新”和“安装”步骤。所以应该能找到。有什么想法为什么不吗?

docker dockerfile protocol-buffers
2个回答
1
投票

@banuj 回答了这个问题。

“python3-protobuf”包从 Ubuntu 18.04 及更高版本开始可用。我拍摄的基础镜像使用的是ubuntu 16.04。

我有两种方法来解决这个问题:

  1. 使用 ubuntu 18.04(或更高版本)的基础镜像
  2. 使用 pip 安装包。

我最终使用了选项二。


0
投票

这对我有用:https://thestrugglingdeveloper.medium.com/docker-apt-get-unable-to-locate-package-d8af66fd9725

如果该文章不可用,我将复制以下解决方案: “解决方案 在执行安装命令之前执行一个简单的 apt-get 更新,例如 apt-get install nano(是的,我更喜欢 nano),并看到它已成功安装在 docker 容器的运行实例中(记住这一点,在容器重新启动您的容器后)编辑又走了)。”

© www.soinside.com 2019 - 2024. All rights reserved.