Docker 以非交互方式设置用户密码

Docker set user password non-interactively

我想在 Dockerfile 中设置我的用户 vault 的密码,我已经尝试过了

RUN echo -e "pass\npass" | passwd "${USER}" 

但得到

Enter new UNIX password: Retype new UNIX password: Sorry, passwords do not match
passwd: Authentication token manipulation error
passwd: password unchanged
The command '/bin/sh -c echo -e "pass\npass" | passwd "${USER}"' returned a non-zero code: 10

我想知道是否有更好的方法来代替?

不使用 passwd,还有另一个实用程序:chpasswd。我已经通过在我的 Dockerfile 中使用以下命令解决了这个问题(在创建用户之后):

RUN echo "${USER}:pass" | chpasswd

很有魅力!