如何在Dockerfile中设置帐户的密码?

时间:2019-01-20 12:26:37

标签: docker

ENV USERNAME ros
RUN adduser --ingroup sudo --disabled-password --gecos "" --shell /bin/bash --home /home/$USERNAME $USERNAME
RUN bash -c 'echo $USERNAME:ros | chpasswd'
ENV HOME /home/$USERNAME

我的目标是拥有一个具有sudo特权的帐户。

上下文是我正在尝试使用有效的ROS安装来创建Docker映像。 ROS的安装很复杂,并且包括运行许多命令和脚本。我知道上述陈述可能是错误的,因为它正在创建所有者为ros和组为sudo的文件。

1 个答案:

答案 0 :(得分:0)

尽管我同意以下说法:在大多数情况下,您避免在Docker中使用sudo,但我也遇到相同的情况,即我需要在Docker内部使用具有无密码sudo特权的非root用户。

This is my Dockerfile that defines a sudo user

这是其中的相关部分:

# Set a passwordless sudoer user
RUN adduser --disabled-password --gecos "" ubuntu && \
    usermod -aG sudo ubuntu && \
    echo "%sudo  ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/nopasswd

# Start the container as the user
WORKDIR /home/ubuntu
USER ubuntu
CMD bash

希望这会有所帮助。