在我的Dockerfile中,我想暂时切换到root,然后切换回原始用户。
originalUser=`RUN whoami`
USER root
RUN apk update
RUN apk add curl
# switch back to the user before root
USER $originalUser
在Dockerfile中可以做这样的事吗?
一方面,不,没有这样的事情。唯一类似的东西是ARG
(在命令行传递)和ENV
(它们是固定字符串),它们都不能根据命令输出动态设置。
另一方面,在Docker镜像的上下文中,作为Dockerfile作者,您可以完全和绝对地控制进入图像的内容。您永远不必提出诸如“如果用户具有不同的用户名”或“如果他们想要安装到不同的路径中的内容”等问题:您可以为这些内容选择固定值。我会建议:
./configure --prefix=...
选项),请将其安装到系统目录中/app
就是一个常见的地方USER
如果您正在尝试扩展其他图像,那么您应该很好地确定它使用的用户名,并在派生图像的Dockerfile末尾的USER
目录中放置一个固定字符串。