Problema: Adicionando Usuários a Contêineres Docker de Forma Não Interativa
Adicionar usuários a contêineres Docker geralmente requer prompts interativos. Isso pode ser inconveniente para processos automatizados ou implantações via script. Isso cria um desafio ao tentar melhorar o gerenciamento de contêineres e o provisionamento de usuários sem entrada manual.
A Solução: Criação de Usuários Não Interativa
Usando useradd
para Adição Automatizada de Usuários
O comando useradd
é uma opção não interativa para adduser
para criar usuários em contêineres Docker. Este comando permite adicionar usuários sem entrada manual durante o processo de construção.
A sintaxe básica para useradd
é:
useradd [opções] nome_do_usuário
Opções comuns incluem:
-m
: Cria o diretório home do usuário-s
: Especifica o shell de login do usuário-u
: Define um ID de usuário específico-g
: Atribui o usuário a um grupo primário
Dica: Criação Segura de Usuários
Ao criar usuários com useradd
, considere usar a opção -p
para definir uma senha criptografada. Isso melhora a segurança evitando o uso de senhas padrão ou vazias. Por exemplo:
useradd -m -s /bin/bash -p $(openssl passwd -1 "senha_segura") nome_do_usuário
Implementando a Solução no Dockerfile
Para adicionar usuários de forma não interativa em seu Dockerfile, você pode usar o comando useradd
com opções. Aqui está um exemplo de como adicionar usuários em seu Dockerfile:
RUN useradd -ms /bin/bash uwsgi
RUN useradd -ms /bin/bash celery
Isso cria dois usuários, 'uwsgi' e 'celery', cada um com seu próprio diretório home e bash como seu shell padrão.
Para criar um grupo compartilhado para esses usuários, você pode usar o comando groupadd
:
RUN groupadd worker
RUN usermod -aG worker uwsgi
RUN usermod -aG worker celery
Esses comandos criam um grupo 'worker' e adicionam ambos os usuários 'uwsgi' e 'celery' a ele.