Articles

Docker

Ubuntu 20.04 – Mise à jour des images Docker avec Docker-Compose

Les images Docker que vous rapatriez sur votre serveur sont régulièrement mises à jour par les développeurs. Si vous avez une dizaine de containers avec des fichiers docker-compose.yml éparpillés sur votre filesystem, la mise à jour des images et le redémarrage des containers associés peuvent s’avérer vite fastidieux…

Mettre à jour manuellement les images de votre docker-compose.yml

  • Placez-vous tout d’abord dans le répertoire contenant votre fichier docker-compose.yml et mettez à jour l’image associée en exécutant la commande suivante :

    docker-compose pull
  • Relancez les containers :

    docker-compose up -d --remove-orphans
  • Supprimez les images obsolètes :

    docker image prune

Mettre à jour automatiquement les images de votre docker-compose.yml avec une tâche planifiée

Nous allons automatiser les deux commandes précédentes en les exécutant via une règle crontab. Celle-ci sera planifiée pour exécution tous les jours à 23h42. Les traces liées à l’exécution de ces commandes seront enregistrées dans un fichier /var/log/docker-updater.log.

  • Éditez la crontab :

    sudo crontab -e
  • Ajoutez la ligne suivante en remplaçant /path/absolu (sans docker-compose.yml) par le répertoire de votre fichier docker-compose.yml :

    42 23 * * * (cd /path/absolu && /usr/local/bin/docker-compose pull && /usr/local/bin/docker-compose up -d --remove-orphans && /usr/bin/docker image prune -f) > /var/log/docker-updater.log 2>&1
  • Sauvegardez et quittez.

Mettre à jour automatiquement les images de tous les fichiers docker-compose.yml de votre système avec une tâche planifiée

Comme vous pouvez le constater, mettre à jour une image nécessite de se rendre dans le répertoire de chaque docker-compose.yml et d’exécuter la commande de mise à jour et d’exécution de docker-compose. Nous allons automatiser cette tâche grâce à un script bash avec son fichier de configuration associé contenant l’ensemble des emplacements de vos fichiers docker-compose.yml. Nous allons créer une règle crontab où le script de mise à jour sera planifié pour exécution tous les jours à 23h42. Les traces liées à l’exécution du script seront enregistrées dans un fichier /var/log/docker-updater.log

  • Créez le fichier /opt/docker-updater/docker-updater contenant les lignes suivantes :

    #!/bin/bash
    
    # List of docker-compose configs
    DCOMPOSE=containers-to-update.conf
    
    # Update all docker compose scripts 
    DIR_SCRIPT=`dirname $0`
    if [ -e "$DIR_SCRIPT/$DCOMPOSE" ]
    then
        cat "$DIR_SCRIPT/$DCOMPOSE" | /bin/grep -v '^#' | 
        while read conf
        do
      if [ -e "$conf" ]
      then
          dir=$(dirname "$conf")
          compfile=$(basename "$conf")    
          cd "$dir"
          /usr/local/bin/docker-compose pull && /usr/local/bin/docker-compose -f "$compfile" up -d --remove-orphans && /usr/bin/docker image prune -f 2>&1
      else
          echo "docker compose file $conf does not exist..."
      fi
        done
    fi
  • Ajoutez les droits d’exécution sur le script /opt/docker-updater/docker-updater :

    sudo chmod ugo+x /opt/docker-updater/docker-updater
  • Créez le fichier de configuration containers-to-update.conf dans le répertoire /opt/docker-updater et ajoutez le path absolu de chaque fichier docker-compose.yml :

    /path1/absolu/docker-compose.yml
    /path2/absolu/docker-compose.yml
    /path3/absolu/docker-compose.yml
  • Éditez la crontab :

    sudo crontab -e
  • Ajoutez la ligne suivante :

    42 23 * * * /opt/docker-updater/docker-updater > /var/log/docker-updater.log 2>&1
  • Sauvegardez et quittez.


blank

Ubuntu 20.04Docker 19.03.8
Docker Compose 1.26.2


blank

Ubuntu 20.04 LTS

Ubuntu 18.04 & 19.04 – Mise à jour vers Ubuntu 20.04 LTS

Ubuntu 20.04, nom de code : Focal Fossa, est sorti le 23 avril 2020. Ce tutoriel va vous montrer comment effectuer la mise à jour de votre Ubuntu vers la version 20.04 LTS.
Lire la suite
Tiny Tiny RSS

Ubuntu 18.04 LTS – Installation de Tiny Tiny RSS avec Nginx, PHP-FPM et MariaDB

Tiny Tiny RSS (tt-rss) est un agrégateur auto-hébergé de flux RSS et Atom libre sous licence libre GNU GPL v3.

Depuis la fin de Google Reader au mois de juillet 2013, les services concurrents (Feedly, NetVibes, etc.) se sont multipliés. En majorité, il s’agit de services tiers qui nécessitent simplement de s’inscrire afin de disposer d’une interface web prête à l’emploi.

Lire la suite