sudo 명령을 실행하기 위해서는 sudo 설치 및 사용자 설정이 필요하다. 아래 절차를 Dockerfile의 RUN 명령문에 지정하면 된다.
1. sudo 설치
$ apt-get update && apt-get install -y sudo
2. 사용자 계정 추가 (아래 명령에서 사용자명은 user이다.)
$ adduser --disabled-password --gecos "" user \
&& echo 'user:user' | chpasswd \
&& adduser user sudo \
&& echo 'user ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
이 때 sudoers에 추가한 유저에 대한 설정을 하지 않으면 sudo를 사용할 수 없다. /etc/sudoers의 내용을 보면 %sudo로 시작하는 설정이 있는데 이는 sudo group에 속한 유저에 대한 권한 설정이다.
NOPASSWD 설정을 해주지 않으면 sudo 그룹에 속한 유저라도 아래와 같이 최초 한번 비밀번호를 물어보게 되므로 Dockerfile 빌드 시 에러가 난다.
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
sudo: no tty present and no askpass program specified
'Programming > Docker' 카테고리의 다른 글
[Docker] Docker for AWS Demo 따라해보기 (0) | 2017.05.21 |
---|---|
[Docker] private repository 구성하기 (0) | 2017.04.25 |
docker swarm tutorial 따라해보기 (0) | 2017.04.20 |
docker container에서 sudo 사용하기 (0) | 2017.04.10 |
Docker Enterprise 버전 간략 정리 (1) | 2017.03.10 |
댓글