From b092f0cb8b01cf74a64fb130dc540ad1acadba13 Mon Sep 17 00:00:00 2001 From: Olivier Date: Fri, 22 May 2026 14:48:59 +0200 Subject: [PATCH] Add choose docker user option --- README.md | 8 ++++-- install-docker-ce.sh | 62 +++++++++++++++++++++++++++++++------------- 2 files changed, 50 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 1959872..42ea243 100644 --- a/README.md +++ b/README.md @@ -71,10 +71,13 @@ Installer Docker CE depuis le dépôt officiel Docker : sudo ./install-docker-ce.sh ``` -Installer Docker CE et ajouter un utilisateur au groupe `docker` : +Le script demande ensuite les utilisateurs à ajouter au groupe `docker`. Laisser la réponse vide permet de n'ajouter aucun utilisateur. + +Installer Docker CE et ajouter directement un ou plusieurs utilisateurs au groupe `docker` : ```bash sudo ./install-docker-ce.sh olivier +sudo ./install-docker-ce.sh olivier deploy ``` Le script Docker effectue les actions suivantes : @@ -84,7 +87,8 @@ Le script Docker effectue les actions suivantes : - 📦 ajout du dépôt APT officiel via `/etc/apt/sources.list.d/docker.sources` ; - 🐳 installation de `docker-ce`, `docker-ce-cli` et `containerd.io` ; - 🧩 installation des plugins `docker-buildx-plugin` et `docker-compose-plugin` ; -- ⚙️ activation et démarrage du service `docker`. +- ⚙️ activation et démarrage du service `docker` ; +- 👥 ajout optionnel des utilisateurs choisis au groupe `docker`. Vérification après installation : diff --git a/install-docker-ce.sh b/install-docker-ce.sh index c017aaf..5eb5916 100755 --- a/install-docker-ce.sh +++ b/install-docker-ce.sh @@ -26,6 +26,14 @@ confirm() { [[ "${answer}" =~ ^[yY]$ ]] } +# Demande les utilisateurs a ajouter au groupe docker. +ask_docker_users() { + local users_input + + read -r -p "Utilisateurs a ajouter au groupe docker (separes par des espaces, laisser vide pour aucun): " users_input + printf '%s\n' "${users_input}" +} + # Verifie qu'une commande requise est disponible. require_command() { local command_name="$1" @@ -118,22 +126,30 @@ enable_docker_service() { systemctl enable --now docker } -# Ajoute un utilisateur au groupe docker si l'option est demandee. -add_user_to_docker_group() { - local target_user="$1" +# Valide que les utilisateurs demandes existent. +validate_docker_users() { + local target_user - if [[ -z "${target_user}" ]]; then - return 0 + for target_user in "$@"; do + if ! id "${target_user}" >/dev/null 2>&1; then + error "Utilisateur introuvable: ${target_user}" + exit 1 + fi + done +} + +# Ajoute les utilisateurs demandes au groupe docker. +add_users_to_docker_group() { + local target_user + + for target_user in "$@"; do + info "Ajout de ${target_user} au groupe docker." + usermod -aG docker "${target_user}" + done + + if [[ "$#" -gt 0 ]]; then + info "Les utilisateurs ajoutes devront ouvrir une nouvelle session pour utiliser Docker sans sudo." fi - - if ! id "${target_user}" >/dev/null 2>&1; then - error "Utilisateur introuvable: ${target_user}" - exit 1 - fi - - info "Ajout de ${target_user} au groupe docker." - usermod -aG docker "${target_user}" - info "L'utilisateur devra ouvrir une nouvelle session pour utiliser Docker sans sudo." } # Affiche les versions installees pour confirmer l'installation. @@ -145,7 +161,8 @@ show_versions() { # Orchestre l'installation complete de Docker CE. main() { - local target_user="${1:-}" + local docker_users=("$@") + local users_input require_command apt-get require_command curl @@ -153,6 +170,15 @@ main() { require_command systemctl load_os_release + if [[ "${#docker_users[@]}" -eq 0 ]]; then + users_input="$(ask_docker_users)" + if [[ -n "${users_input}" ]]; then + read -r -a docker_users <<< "${users_input}" + fi + fi + + validate_docker_users "${docker_users[@]}" + echo "Installation Docker CE pour Debian ${VERSION_CODENAME}" echo echo "Ce script va:" @@ -160,8 +186,8 @@ main() { echo " - ajouter le depot officiel Docker" echo " - installer docker-ce, docker-ce-cli, containerd.io, buildx et compose" echo " - activer et demarrer le service docker" - if [[ -n "${target_user}" ]]; then - echo " - ajouter l'utilisateur ${target_user} au groupe docker" + if [[ "${#docker_users[@]}" -gt 0 ]]; then + echo " - ajouter les utilisateurs suivants au groupe docker: ${docker_users[*]}" fi echo @@ -175,7 +201,7 @@ main() { configure_docker_repository install_docker_packages enable_docker_service - add_user_to_docker_group "${target_user}" + add_users_to_docker_group "${docker_users[@]}" show_versions echo