Problème : Cron + Docker

Bonjour,

J’utilise docker pour faire tourner Matomo et j’ai mis en place un cron pour faire fonctionner l’auto-archivage.

Voici mon crontab :

*/5 * * * * su www-data -s /bin/bash -c '/usr/local/bin/php /var/www/html/console core:archive --url=https://matomo.XXX.com/ 2>/tmp/matomo-archive-error.log >/tmp/matomo-archive.log'

La tâche du cron se déclenche bien toutes les 5min, mais la commande php ne produit aucun effet.
Les fichiers matomo-archive-error.log et matomo-archive.log sont bien créés, mais sont vides (o octet).

Le plus étrange est que si je lance manuellement la commande suivante depuis le shell du conteneur, cela fonctionne parfaitement bien :confused:

su www-data -s /bin/bash -c '/usr/local/bin/php /var/www/html/console core:archive --url=https://matomo.XXX.com/ 2>/tmp/matomo-archive-error.log >/tmp/matomo-archive.log'

Si quelqu’un a une idée lumineuse … je suis preneur… :pray:

Merci d’avance pour votre aide…

…quand tu es seul au monde !!! :sweat_smile:

J’ai donc trouvé la solution que je partage en espérant ca puisse aider quelqu’un… :wink:

Le problème venait que le cron n’accédait pas aux variables d’environnement qui sont nécessaires pour l’exécution de la commande.

J’ai résolu le problème en ajoutant l’instruction suivante dans le Dockefile :

RUN printenv > /etc/environment
3 Likes