Docker非交互设置用户密码

std*_*err 6 authentication passwd docker dockerfile

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

RUN echo -e "pass\npass" | passwd "${USER}" 
Run Code Online (Sandbox Code Playgroud)

但得到

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
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的方法来做到这一点?

std*_*err 8

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

RUN echo "${USER}:pass" | chpasswd
Run Code Online (Sandbox Code Playgroud)

奇迹般有效!

  • 获取` chpasswd:(用户$ {UNAME})pam_chauthtok()失败,错误:身份验证令牌操作错误chpasswd:(第1行,用户$ {UNAME})密码未更改` (6认同)