Problème : Ajouter des utilisateurs aux conteneurs Docker de manière non interactive
L'ajout d'utilisateurs aux conteneurs Docker nécessite souvent des invites interactives. Cela peut être gênant pour les processus automatisés ou les déploiements scriptés. Cela crée un défi lors de l'amélioration de la gestion des conteneurs et de l'approvisionnement des utilisateurs sans intervention manuelle.
La solution : Création d'utilisateurs non interactive
Utilisation de useradd
pour l'ajout automatisé d'utilisateurs
La commande useradd
est une option non interactive à adduser
pour créer des utilisateurs dans les conteneurs Docker. Cette commande vous permet d'ajouter des utilisateurs sans saisie manuelle pendant le processus de construction.
La syntaxe de base de useradd
est :
useradd [options] nom_utilisateur
Les options courantes incluent :
-m
: Créer le répertoire personnel de l'utilisateur-s
: Spécifier le shell de connexion de l'utilisateur-u
: Définir un ID utilisateur spécifique-g
: Assigner l'utilisateur à un groupe principal
Conseil: Création sécurisée d'utilisateurs
Lors de la création d'utilisateurs avec useradd
, envisagez d'utiliser l'option -p
pour définir un mot de passe crypté. Cela améliore la sécurité en évitant l'utilisation de mots de passe par défaut ou vides. Par exemple :
useradd -m -s /bin/bash -p $(openssl passwd -1 "mot_de_passe_sécurisé") nom_utilisateur
Mise en œuvre de la solution dans le Dockerfile
Pour ajouter des utilisateurs de manière non interactive dans votre Dockerfile, vous pouvez utiliser la commande useradd
avec des options. Voici un exemple d'ajout d'utilisateurs dans votre Dockerfile :
RUN useradd -ms /bin/bash uwsgi
RUN useradd -ms /bin/bash celery
Cela crée deux utilisateurs, 'uwsgi' et 'celery', chacun avec son propre répertoire personnel et bash comme shell par défaut.
Pour créer un groupe partagé pour ces utilisateurs, vous pouvez utiliser la commande groupadd
:
RUN groupadd worker
RUN usermod -aG worker uwsgi
RUN usermod -aG worker celery
Ces commandes créent un groupe 'worker' et ajoutent les utilisateurs 'uwsgi' et 'celery' à ce groupe.