Add choose docker user option

This commit is contained in:
2026-05-22 14:48:59 +02:00
parent ad7545dc26
commit b092f0cb8b
2 changed files with 50 additions and 20 deletions
+6 -2
View File
@@ -71,10 +71,13 @@ Installer Docker CE depuis le dépôt officiel Docker :
sudo ./install-docker-ce.sh 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 ```bash
sudo ./install-docker-ce.sh olivier sudo ./install-docker-ce.sh olivier
sudo ./install-docker-ce.sh olivier deploy
``` ```
Le script Docker effectue les actions suivantes : 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` ; - 📦 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 de `docker-ce`, `docker-ce-cli` et `containerd.io` ;
- 🧩 installation des plugins `docker-buildx-plugin` et `docker-compose-plugin` ; - 🧩 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 : Vérification après installation :
+44 -18
View File
@@ -26,6 +26,14 @@ confirm() {
[[ "${answer}" =~ ^[yY]$ ]] [[ "${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. # Verifie qu'une commande requise est disponible.
require_command() { require_command() {
local command_name="$1" local command_name="$1"
@@ -118,22 +126,30 @@ enable_docker_service() {
systemctl enable --now docker systemctl enable --now docker
} }
# Ajoute un utilisateur au groupe docker si l'option est demandee. # Valide que les utilisateurs demandes existent.
add_user_to_docker_group() { validate_docker_users() {
local target_user="$1" local target_user
if [[ -z "${target_user}" ]]; then for target_user in "$@"; do
return 0 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 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. # Affiche les versions installees pour confirmer l'installation.
@@ -145,7 +161,8 @@ show_versions() {
# Orchestre l'installation complete de Docker CE. # Orchestre l'installation complete de Docker CE.
main() { main() {
local target_user="${1:-}" local docker_users=("$@")
local users_input
require_command apt-get require_command apt-get
require_command curl require_command curl
@@ -153,6 +170,15 @@ main() {
require_command systemctl require_command systemctl
load_os_release 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 "Installation Docker CE pour Debian ${VERSION_CODENAME}"
echo echo
echo "Ce script va:" echo "Ce script va:"
@@ -160,8 +186,8 @@ main() {
echo " - ajouter le depot officiel Docker" echo " - ajouter le depot officiel Docker"
echo " - installer docker-ce, docker-ce-cli, containerd.io, buildx et compose" echo " - installer docker-ce, docker-ce-cli, containerd.io, buildx et compose"
echo " - activer et demarrer le service docker" echo " - activer et demarrer le service docker"
if [[ -n "${target_user}" ]]; then if [[ "${#docker_users[@]}" -gt 0 ]]; then
echo " - ajouter l'utilisateur ${target_user} au groupe docker" echo " - ajouter les utilisateurs suivants au groupe docker: ${docker_users[*]}"
fi fi
echo echo
@@ -175,7 +201,7 @@ main() {
configure_docker_repository configure_docker_repository
install_docker_packages install_docker_packages
enable_docker_service enable_docker_service
add_user_to_docker_group "${target_user}" add_users_to_docker_group "${docker_users[@]}"
show_versions show_versions
echo echo