【问题标题】:Cannot install packages inside Docker image based of apache/zeppelin:0.9.0无法在基于 apache/zeppelin:0.9.0 的 Docker 映像中安装软件包
【发布时间】:2021-09-05 08:44:10
【问题描述】:

我从 apache/zeppelin:0.9.0 基础镜像创建了一个 Dockerfile,该基础镜像在我的 docker 镜像中安装了 jq

FROM apache/zeppelin:0.9.0

RUN apt-get update && apt-get install -y jq

当我使用 docker build . 构建此映像时,我收到以下错误消息:

[2/2] 运行 apt-get update && apt-get install -y jq:

#5 0.257 读取包列表...

#5 0.272 E: 无法打开锁定文件 /var/lib/apt/lists/lock - open (13: Permission denied)

#5 0.272 E: 无法锁定目录 /var/lib/apt/lists/

在我的 Dockerfile 中使用 RUN sudo apt-get update && sudo apt-get install -y jq 时,我遇到另一个错误,说缺少 sudo:

[2/2] 运行 sudo apt-get update && sudo apt-get install -y jq:

#5 0.249 /bin/sh: 1: sudo: 未找到

我的问题是,在使用上述 Docker 基础镜像时,如何运行apt-get

【问题讨论】:

    标签: docker jq apache-zeppelin


    【解决方案1】:

    如果您查看 zeppelin Dockerfile here,您可以看到在末尾附近有一个 USER 1000 语句。

    当您尝试在此映像上构建时,您的构建步骤将作为不允许安装任何东西的用户运行。

    要修复它,您需要在安装前切换到 root 用户,然后在完成后切换回用户 1000。像这样

    FROM apache/zeppelin:0.9.0
    USER root
    RUN apt-get update && apt-get install -y jq
    USER 1000
    

    【讨论】:

      猜你喜欢
      • 2015-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-01
      相关资源
      最近更新 更多