Précision sur la maintenance en configuration docker

Bonjour à vous.

Je débute avec docker, je teste pour migrer de ma smart vers un RPI4 avec portainer et une image docker.

J’ai utilisé le container latest, restauré mon backup.
Tout s’est bien passé, les plugins se sont installés.

Concernant la maintenance d’un tel système.
Comme sur ma smart, je peux lancer les mises à jour du core et des plugins, relancer les dépendances.

Peut-on rester comme cela sans mise à jour de l’image ?
Quels sont les cas qui demanderaient une mise à jour du container ?
Quel(s) risque(s) de ne pas faire la mise à jour du container ?

En parcourant le forum, j’ai conscience que la mise à jour du container n’est pas si simple.
Quels sont les tâches à faire ?
Il faut réinstaller les dépendances ? restaurer son backup ?

Merci d’avance pour votre éclairage.

Bonjour,

oui pas de problème

Le seul cas qui me vient à l’esprit serait un upgrade de la version de l’OS Debian. L’image latest est déjà en debian 12 il me semble, ça laisse donc de la marge avant qu’une prochaine maj de l’image ne soit nécessaire :slight_smile: en attendant, une simple maj des packages système (comme sur une smart ou autre matériel) fera l’affaire.

En cas d’installation d’une nouvelle image, en effet il faut restaurer le backup puis relancer les dépendances pour tous les plugins. Sur mon Jeedom j’ai un scénario qui fait cela, déclenché par l’event #end_restore# donc automatiquement à la fin du restore, je l’ai trouvé sur le forum mais je le partage ici:

$scenario->setLog('Début du scenario de reinstallation des dependances');
// parcourrir la liste des plugins actifs ...
foreach(plugin::listPlugin(true) as $plugin){
  // Si le plugin a des dépendances
  if($plugin->getHasDependency()) {
    $scenario->setLog($plugin->getName().' dispose de dependances, installation en cours :');
    // Arrêter & désactiver le démon (attendre 60 secondes !)
    $plugin->deamon_stop();
    $plugin->deamon_changeAutoMode(0);
    sleep(60);
    try {
      // tenter l'installation des dépendances - process asynchrone
      $plugin->dependancy_install();
    }
    catch (Exception $e) {
      $scenario->setLog('Erreur lors de l\'installation des dependances: '.$e->getMessage());
    }
    do {
      $dependency_info = $plugin->dependancy_info();
      // attendre la fin de l'installation des dépendances (Vérifier toutes les 10 secondes)
      if ($dependency_info['state'] == 'in_progress') {
        sleep(10);
      } 
      else {
        $scenario->setLog('Installation des dependances de '.$plugin->getName().' terminees');
        try {
            // relancer + reactiver le démon
      		$plugin->deamon_start();
          	$plugin->deamon_changeAutoMode(1);
    	}
    	catch (Exception $e) {
      		$scenario->setLog('Erreur lors du demarrage du plugin: '.$e->getMessage());
    	}
      }
    } while ($dependency_info['state'] == 'in_progress');  
  } 
}
$scenario->setLog('Fin du scenario de réinstallation des dépendances');

A noter que si les 2 volumes pour /www et pour /mysql sont correctement définis, il n’est même pas besoin de restaurer un backup, le nouveau conteneur reprend les data de l’ancien. Mais il faut quand même relancer les dépendances…

1 « J'aime »

Hello @pifou.
Merci beaucoup pour tes réponses, c’est très clair maintenant.
Je vais mettre en place ton script et suivre tes précieux conseils :wink:

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.