报错解析:apt-get install curl -y‘ returned a non-zero code: 100
2023-12-30 23:25:39
错误回顾
The command ‘/bin/sh -c apt-get update && apt-get install curl -y’ returned a non-zero code: 100
docker build 时想给容器加上curl命令,执行报错
dockerfile命令
FROM Ubuntu20.04
#RUN apt-get update && apt-get install -y curl
RUN pip install mlflow
RUN pip install sklearn
RUN apt-get update && apt-get install -y curl
打包命令
docker build -t yourcontainer .
日志输出
Step 4/4 : RUN apt-get update && apt-get install -y curl
---> Running in 9defd2986ad7
Reading package lists...
E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)
The command '/bin/bash -o pipefail -c apt-get update && apt-get install -y curl' returned a non-zero code: 100
我怀疑这与不以root身份运行有关?那么,如何从Dockerfile在容器中安装curl呢?
解决方式
当apt尝试创建/var/lib/apt/lists/partial时,您会看到“权限被拒绝”错误。这是因为您的进程不是以root运行的;Ubuntu20.04映像被配置为作为non-root用户运行(它作为用户ncayu运行)。
您可以使用USER指令更改在Dockerfile中运行命令的用户,如下所示:
FROM Ubuntu20.04
RUN pip install mlflow
RUN pip install sklearn
USER root
RUN apt-get update && apt-get install -y curl
USER ncayu
请注意,在运行apt-get命令后,我已确保将用户重置回ncayu。
文章来源:https://blog.csdn.net/qq_44534541/article/details/135310934
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!