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
的文件。
答案 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
希望这会有所帮助。