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.


Ubuntu 20.04Docker 19.03.8
Docker Compose 1.26.2



Seedbox

Ubuntu 20.04 – Installation d’une seedbox anonyme et sécurisée avec Deluge, Jackett, Sonarr, Radarr, Lidarr, Docker et SSL/TLS

Cet article décrit la procédure pour installer une seedbox automatisée, anonyme et sécurisée sur Ubuntu 20.04 avec l’utilisation de Docker et OpenVPN. Cette procédure fonctionne aussi pour les architectures ARM (Raspberry Pi).
Lire la suite
Transmission

Ubuntu 20.04 – Installation de Transmission avec OpenVPN, Traefik, Docker et SSL/TLS

Transmission est un client BitTorrent multiplateforme qui permet le téléchargement et la création de torrents. Il supporte les technologies décentralisées sans tracker, tel que PEX, DHT et les liens magnets. Je vous recommande cependant l’utilisation de Deluge plus léger et plus complet…
Lire la suite
Deluge

Ubuntu 20.04 – Installation de Deluge avec OpenVPN, Traefik, Docker et SSL/TLS

Deluge est un client BitTorrent multiplateforme libre basé sur libtorrent. Il est réputé pour sa stabilité, sa vitesse et son côté poids plume et dispose d’une interface claire et intuitive. Enfin il s’avère extrêmement modulable grâce à la possibilité de lui ajouter de nombreux plugins.
Lire la suite
Seedbox

Ubuntu 20.04 / Debian 10 – Installation d’une seedbox anonyme et sécurisée – (Partie 2) Accès de l’extérieur avec Traefik

Un reverse proxy est le récepteur frontal de toutes les requêtes HTTP venant de l’extérieur. Celui-ci les redirigera vers les bonnes instances des conteneurs Docker. Dans notre cas, nous disposons d’une multitude de containers Docker et nous ne pouvons pas toutes les faire écouter sur le port 80 ou 443, d’où l’utilisation d’un reverse proxy. Ajoutez à cela un joli nom de domaine à votre seedbox en sécurisant le tout avec le protocole SSL/TLS et un certificat Let’s Encrypt.
Lire la suite
Seedbox

Debian 10 – Installation d’une seedbox sécurisée et anonyme avec Deluge, Jackett, Sonarr, Radarr, Lidarr, Docker et SSL/TLS

Cet article décrit la procédure pour installer une seedbox automatisée, anonyme et sécurisée sur Debian 20.04 avec l’utilisation de Docker et OpenVPN.
Lire la suite
Monitoring

Ubuntu 20.04 – Outils de monitoring avec Telegraf, InfluxDB et Grafana

Le monitoring ou surpervision est une activité de surveillance et de mesure d’une activité informatique. Ces mesures permettent de construire des graphes afin de visualiser les performances et de voir les tendances, de détecter voire d’anticiper des anomalies ou des pannes et d’alerter en cas de dysfonctionnement.
Lire la suite