Cron dans un conteneur Docker (Impossible de créer/supprimer une entrée pour la session spécifiée)

J’ai ajouté un modèle pour créer un fichier dans /etc/cron.d/ à l’intérieur de mon conteneur Docker Discourse, mais je n’arrive pas à faire exécuter la tâche cron ! À la place, je vois l’entrée suivante dans le syslog de mon conteneur Docker :

==> /var/log/syslog <==
Apr 22 11:45:01 osestaging1-discourse-ose CRON[30055]: Impossible de créer/supprimer une entrée pour la session spécifiée

Comment puis-je définir une tâche cron pour qu’elle s’exécute à l’intérieur de mon conteneur Docker Discourse ?

Ceci est le résultat d’un bug dans Docker et Debian. Il a depuis été corrigé, mais apparemment pas encore pour l’image Docker de Discourse.

Conformément au lien ci-dessus, j’ai utilisé le fichier modèle suivant pour à la fois [a] créer le fichier /etc/cron.d/ et [b] corriger le bug dans le module pam cron :

[root@osestaging1 discourse]# cat /var/discourse/templates/unattended-upgrades.template.yml run:
  - file:
     path: /etc/cron.d/unattended-upgrades
     contents: |+
        ################################################################################
        # Fichier:    /etc/cron.d/unattended-upgrades
        # Version: 0.1
        # Objectif: exécuter unattended-upgrades à la place de systemd. Pour plus d'informations, voir
        #           * https://wiki.opensourceecology.org/wiki/Discourse
        #           * https://meta.discourse.org/t/does-discourse-container-use-unattended-upgrades/136296/3
        # Auteur:  Michael Altfield <michael@opensourceecology.org>
        # Créé: 2020-03-23
        # Mis à jour: 2020-03-23
        ################################################################################
        20 04 * * * root /usr/bin/nice /usr/bin/unattended-upgrades --debug
        

  - exec: /bin/echo -e "\n" >> /etc/cron.d/unattended-upgrades
  # corriger le bug Docker cron https://stackoverflow.com/questions/43323754/cannot-make-remove-an-entry-for-the-specified-session-cron
  - exec: /bin/sed --in-place=.`date "+%Y%m%d_%H%M%S"` 's%^\([^#]*\)\(session\s\+required\s\+pam_loginuid\.so\)$%\1#\2%' /etc/pam.d/cron
[root@osestaging1 discourse]# 

Malheureusement, je ne suis pas à 100 % sûr de toutes les conséquences de ce changement apporté au module pam.d cron. Mais cela me semble être la correction reconnue en amont :\

Voir également : Does Discourse container use unattended-upgrades? - #9 by maltfield

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.