Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以非根用户身份构建Docker映像_Docker_Alpine - Fatal编程技术网

以非根用户身份构建Docker映像

以非根用户身份构建Docker映像,docker,alpine,Docker,Alpine,在构建Docker映像时,作为最佳实践,我知道我不应该使用root用户,但我与我创建的用户相处得很艰难 这里是我的Dockerfile FROM alpine:3.9.2 RUN addgroup -S cetacean && adduser -S mobydick -G cetacean USER mobydick RUN apk update 这是我运行它时得到的错误 错误:无法锁定数据库:权限被拒绝 错误:无法打开apk数据库:权限被拒绝 为了能够使用mobydick安

在构建Docker映像时,作为最佳实践,我知道我不应该使用
root
用户,但我与我创建的用户相处得很艰难

这里是我的
Dockerfile

FROM alpine:3.9.2
RUN addgroup -S cetacean && adduser -S mobydick -G cetacean
USER mobydick
RUN apk update 
这是我运行它时得到的错误

错误:无法锁定数据库:权限被拒绝

错误:无法打开apk数据库:权限被拒绝


为了能够使用
mobydick
安装软件包,我应该怎么做?

根据最佳实践,如果可能,我们应该以非root用户的身份运行docker容器。
我们可以通过在末尾添加用户来实现这一点,这样您就可以以root用户身份安装所有包,当容器启动时,它使用非root用户

 FROM alpine:3.9.2
 RUN addgroup -S cetacean && adduser -S mobydick -G cetacean
 RUN apk update 
 USER mobydick

您可以阅读更多内容。

谢谢您的回复。这绝对是一个可行的方法。