Execute o comando sudo com o usuário não root no contêiner do Docker

1

Eu tenho este Dockerfile:

FROM ubuntu:17.04

# Must have packages
RUN apt-get update && apt-get install -y nano zsh curl git

# Instal Oh my Zsh
RUN bash -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
RUN sed -i -- 's/robbyrussell/sonicradish/g' /root/.zshrc 

# Add none root user
RUN adduser admin
USER admin

Estou me conectando com o usuário admin com o shell zsh.

docker exec -ti linux zsh

Estou adicionando um usuário não-root (admin).

Eu ainda quero executar um comando sudo com esse usuário, mas ele cometerá erros:

$ sudo apt-get install vim
zsh: command not found: sudo

Mesma mensagem com o shell bash.

Como posso executar comandos sudo com um usuário não-root?

Quando não uso sudo , recebo um erro de permissão:

$ apt-get install vim
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?
    
por Kevin 18.04.2017 / 15:24

1 resposta

3

Isso é o que eu faria

FROM ubuntu:17.04

# Must have packages
RUN apt-get update && apt-get install -y vim nano zsh curl git sudo

# Install Oh my Zsh
RUN bash -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
RUN sed -i -- 's/robbyrussell/sonicradish/g' /root/.zshrc 

# Add none root user
RUN  useradd admin && echo "admin:admin" | chpasswd && adduser admin sudo
USER admin
    
por Grayson Kent 18.04.2017 / 15:51