Dockerfile
ENV UNAME=docker
ENV GID=1000
ENV UID=1000
RUN groupadd -g $GID -o $UNAME
RUN useradd -m -u $UID -g $GID -G sudo -o -s /bin/bash $UNAME
RUN echo "$UNAME ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
こんな感じに書いてあげると、一般ユーザーを作成できる。
echo "$UNAME ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
のコマンドによって、sudo もパスワード無しで実行できるようになる
docker-compose
user で id を指定してあげると、ログインユーザーを変更できる。
version: "3.7"
services:
app:
...
environment:
GID: 1000
UID: 1000
user: "1000:1000"
ちょっとはまったところ
node のイメージだったりだと、UID 1000 ですでに一般ユーザーが用意されている場合がある。
この場合は RUN echo "node ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers としてあげることで、 sudo が使えるようになる。