Add choose docker user option
This commit is contained in:
+44
-18
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user