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

标签 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: Unable to locate package python3-protobuf



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

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

最佳答案

@banuj回答了这个问题。

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

我有两种解决方法:

  • 使用ubuntu 18.04(或更高版本)附带的基本镜像
  • 使用pip安装软件包。

  • 我最终使用了选项二。

    关于docker - Docker为什么找不到现有软件包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56022225/

    相关文章:

    amazon-web-services - 使用 Gradle 插件将 docker 镜像推送到 ECR

    java - 使用 Google Jib 和 Kubernetes 时添加 SSL 证书

    java - gRPC protobuf 未使用 kotlin 构建进行编译 (Android Studio 3.0)

    protocol-buffers - Protocol Buffer 对象的增量写入

    base64 - 将 gtfs 实时数据流式传输为人类可读的格式

    docker - 在 Windows 中使用 docker-compose 创建挂载源路径时出错

    Docker Confluent Kafka HDFS Sink 正在运行但任务失败

    c# - dotnetcore api : Skipping project "/MyDotnetCoreLib/MyDotnetCoreLib.csproj" because it was not found 的 Docker 构建错误

    Dockerfile:在单行中设置多个环境变量

    docker - 多阶段构建只是加载最后一部分?