我正在尝试更改在运行dockerfile期间创建的用户的密码:
RUN groupadd --system ${UNAME} --gid ${UID} && \
useradd --uid ${UID} --system --gid ${UNAME} --home-dir /home/${UNAME} --create-home --comment "Docker image user" ${UNAME} && \
chown -R ${UNAME}:${UNAME} /home/${UNAME} && \
usermod -aG sudo ${UNAME}
RUN echo '${UNAME}:password' | chpasswd
第二个RUN
命令失败,并显示
Authentication token manipulation error chpasswd: (line 1, user
${UNAME}) password not changed ```
做同样的事情,确实有效:
RUN useradd pi && \
mkdir -p /home/pi && \
chown pi /home/pi && \
echo 'pi:password' | chpasswd
我不明白其中的区别。我只想给予${UNAE}一个固定密码password
。
1条答案
按热度按时间jdzmm42g1#
请确保这不是因为使用了实际密码,如
moby/moby
问题5704中所述。在我的情况下,密码太简单了,需要使用一个更强的,使用大写和小写字母,数字和符号。例如,
P2sswrd!!!
。并添加
echo "${UNAME}"
以验证${UNAME}
是否具有预期值。最后,尝试
使用
""
将确保变量${UNAME}
被其值替换。