Docker为什么找不到现有软件包?

时间:2019-05-07 12:04:13

标签: docker dockerfile protocol-buffers

我是使用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

我正在安装许多软件包,但这是唯一给我造成问题的软件包。

我知道软件包名称是正确的,因为在终端中,当我“适当搜索”它时,就可以找到它。此外,在dockerfile中,我建议执行“更新”和“安装”步骤。所以应该找到它。任何想法为什么不这样做?

1 个答案:

答案 0 :(得分:0)

@banuj回答了这个问题。

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

我有两种解决方法:

  1. 使用ubuntu 18.04(或更高版本)随附的基本映像
  2. 使用pip安装软件包。

我最终使用了选项二。