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
|
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 :
|
||||||
|
|
||||||
|
|||||||
+38
-12
@@ -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
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
for target_user in "$@"; do
|
||||||
if ! id "${target_user}" >/dev/null 2>&1; then
|
if ! id "${target_user}" >/dev/null 2>&1; then
|
||||||
error "Utilisateur introuvable: ${target_user}"
|
error "Utilisateur introuvable: ${target_user}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
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."
|
info "Ajout de ${target_user} au groupe docker."
|
||||||
usermod -aG docker "${target_user}"
|
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.
|
# 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
|
||||||
|
|||||||
Reference in New Issue
Block a user