Help us understand the problem. What is going on with this article?

Dockerコンテナ内にsudoユーザを追加する

More than 3 years have passed since last update.

事の起こり

re:dashセットアップ手順
上記を見て、re:dashをdockerで動かしてみようかと手を動かした時に、
sudoユーザでインストールするようなプログラムだけど、
今まではdockerはrootでやっていたので、
いい機会なのでsudoユーザ作成についてまとめました。

ゴール

  • 追加するsudoユーザ情報
ユーザ名 ユーザが所属するグループ ユーザのpassword
iganari developer hogehoge

Dockerfile

  • ubuntu:16.04で構築しますが、他のOSでも基本的にいけると思います。
    • 中身
Dockerfile
FROM ubuntu:16.04
MAINTAINER iganari <iganari@qiita.com>

# apt update
RUN apt-get update
RUN apt-get install -y sudo

# add sudo user
RUN groupadd -g 1000 developer && \
    useradd  -g      developer -G sudo -m -s /bin/bash iganari && \
    echo 'iganari:hogehoge' | chpasswd

RUN echo 'Defaults visiblepw'             >> /etc/sudoers
RUN echo 'iganari ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

USER iganari
  • 実行コマンド
cmd
# docker build --no-cache .
# docker tag $(docker images -q | head -1) sudo-test
# docker run --rm -it sudo-test /bin/bash

================
コンテナ内でsudo有りと無しで確認してみる

### sudo無し
iganari@4b6360fbafce:/$ apt-get update
W: chmod 0700 of directory /var/lib/apt/lists/partial failed - SetupAPTPartialDirectory (1: Operation not permitted)
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?


### sudo有り
iganari@4b6360fbafce:/$ sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Hit:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease
Hit:3 http://archive.ubuntu.com/ubuntu xenial-security InRelease
Reading package lists... Done

以上で、sudoユーザが出来ました。

ソース

Gistにも載せておきます。

補足

ハマったポイントとしては
echo 'Defaults visiblepw' >> /etc/sudoers
これが見慣れなくてすこし調べました。

ちなみに、当初の目的であるredashを入れるところは別途構築中です…

参考

dockerでsudoできるユーザを追加するdockerfile
ssh で sudo 実行
Jenkinsでsudo実行時のエラー

iganari
Why don't you do your best ?
http://iganari.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした