Étiquette : cron

  • Docker et cron : comment faire ?

    Docker et cron : comment faire ?

    Récemment, sur un projet, nous utilisons, afin de séparer les environnements, des conteneurs Docker. Ce projet utilise des crons pour diverses opérations, la question que nous nous posions est comment exécuter des crons dans un conteneur Docker ?

    Qu’est ce qu’un cron ?

    Un cron est un « programme » ou un script executé automatiquement par un système informatique et selon un planning bien défini.

    On peut ainsi exécuter des taches précises à des moments précis. Les crons fonctionnent aussi bien sous Linux, Unix que Windows. Dans le cas de notre article, ici, nous traitons de la partie Linux

    On peut par exemple utiliser des crons pour sauvegarder des données, transférer des données, importer des données et bien d’autres possibilités sont offertes par cette fonctionnalité

    Crontab à la rescousse

    Etant donné qu’ici, il s’agit d’un serveur exécutant des conteneurs, nous pouvons utiliser tout bêtement la crontab et déclarer les exécutions voulues de cette façon :

    0 18 * * 1-5 /usr/bin/docker exec XXXX php lechemindemonfichier.php

    Ici, pour faire simple, on lance tout simplement un cron normalement et on demande à Docker de lancer dans le conteneur nommé XXXX de lancer la commande précisée, ici, une commande PHP

    Attention

    Cela fonctionne plutôt bien, dès lors que nous ne mettons pas l’instruction -it demandant à docker de lancer un pseudo terminal et forçant le cron à ne pas s’exécuter correctement

    Les symptômes sont simples, on voit le cron se lancer mais rien ne s’exécute à cause de ces arguments dans la commande