您不应
su在dockerfile中使用,但应使用
USERDockerfile中的指令。
在Dockerfile构建的每个阶段,都会创建一个新容器,因此您对用户所做的任何更改都不会在下一个构建阶段中持续存在。
例如:
RUN whoamiRUN su testRUN whoami
这永远不会说用户会
test像在第二代whoami上生成新容器一样。输出将是两者的根目录(除非您事先运行USER)。
但是,如果您这样做:
RUN whoamiUSER testRUN whoami
您应该看到
root那么
test。
或者,您可以使用sudo以其他用户身份运行命令,例如
sudo -u test whoami
但是使用官方支持的指令似乎更好。



