Add choose docker user option
This commit is contained in:
@@ -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 :
|
||||
|
||||
|
||||
+38
-12
@@ -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"
|
||||
|
||||
if [[ -z "${target_user}" ]]; then
|
||||
return 0
|
||||
fi
|
||||
# Valide que les utilisateurs demandes existent.
|
||||
validate_docker_users() {
|
||||
local target_user
|
||||
|
||||
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}"
|
||||
info "L'utilisateur devra ouvrir une nouvelle session pour utiliser Docker sans sudo."
|
||||
done
|
||||
|
||||
if [[ "$#" -gt 0 ]]; then
|
||||
info "Les utilisateurs ajoutes devront ouvrir une nouvelle session pour utiliser Docker sans sudo."
|
||||
fi
|
||||
}
|
||||
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user