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.


