如何解决无法在基于 apache/zeppelin:0.9.0 的 Docker 映像中安装软件包
我从 apache/zeppelin:0.9.0
基础映像创建了一个 Dockerfile,该映像将 jq
安装在我的 docker 映像中:
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
?
解决方法
如果您查看 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。