以非root用户身份构建Docker镜像

Sig*_*Sig 2 docker alpine-linux

在构建 Docker 映像时,作为最佳实践,我知道我不应该使用该root用户,但我在使用我创建的用户时遇到了困难。

在这里我的Dockerfile

FROM alpine:3.9.2
RUN addgroup -S cetacean && adduser -S mobydick -G cetacean
USER mobydick
RUN apk update 
Run Code Online (Sandbox Code Playgroud)

这是我运行时遇到的错误

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

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

我应该做什么才能使用安装包mobydick

Vin*_*lan 5

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

 FROM alpine:3.9.2
 RUN addgroup -S cetacean && adduser -S mobydick -G cetacean
 RUN apk update 
 USER mobydick
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读更多。