scripts:update_containers
Table des matières
Mettre a jour simplement un ensemble de containers docker compose
Prérequis: Le chemin de l installation des containers docker pour ce script est le suivant
/home/$USER/docker/
Adapter le script si vous n’êtes pas dans ce schéma.
Seulement trois commandes a connaitre
docker compose pull docker compose up -d --remove-orphans docker image prune
On va simplifier tout ça avec un script bash
- Création d'un fichier contenant les noms des containers a mettre à jour (un par ligne).
- Création d'un script bash faisant le job.
Le fichier container.liste
Enregistrer le fichier et le script dans le dossier /home/$USER/docker/
cd /home/$USER/docker/ echo -e "container1\ncontainer2\ncontainer3" > container.liste
Le script
cd /home/$USER/docker/ touch update_containers.sh
Copier le code suivant dans le fichier update_containers.sh
#!/bin/bash # Variables USER=$(whoami) BASE_PATH="/home/$USER/docker" CONTAINER_LIST="container.liste" # Vérifier si le fichier container.liste existe if [[ ! -f $CONTAINER_LIST ]]; then echo "Erreur: Le fichier $CONTAINER_LIST est introuvable." exit 1 fi # Fonction de mise à jour d'un conteneur update_container() { local container_name=$1 local container_path="$BASE_PATH/$container_name" if [[ ! -d $container_path ]]; then echo "Erreur: Le chemin $container_path n'existe pas pour le conteneur $container_name." return 1 fi echo "=== Mise à jour du conteneur: $container_name ===" cd "$container_path" || return 1 # Mettre à jour et redémarrer le conteneur docker compose pull docker compose up -d # Nettoyer les anciennes images docker image prune -f echo "=== Mise à jour terminée pour: $container_name ===" } # Boucle sur chaque conteneur dans container.liste while IFS= read -r container_name || [[ -n "$container_name" ]]; do # Ignorer les lignes vides et les commentaires [[ -z $container_name || $container_name =~ ^# ]] && continue update_container "$container_name" done < "$CONTAINER_LIST" echo "Mise à jour de tous les conteneurs terminée."
Rendre le script exécutable
chmod +x /home/$USER/docker/update_containers.sh
Il ne reste plus qu'a se rendre dans le dossier pour exécuter le script.
cd /home/$USER/docker/ ./update_containers.sh
scripts/update_containers.txt · Dernière modification : 2024/12/09 16:37 de jpg