Adicionei um template para criar um arquivo em /etc/cron.d/ dentro do meu container Docker do Discourse, mas não consigo fazer o cron job executar! Em vez disso, vejo a seguinte entrada no syslog do meu container Docker:
==> /var/log/syslog <==
Apr 22 11:45:01 osestaging1-discourse-ose CRON[30055]: Cannot make/remove an entry for the specified session
Como posso definir um cron job para executar dentro do meu container Docker do Discourse?
De acordo com o link acima, usei o seguinte arquivo de modelo para [a] criar o arquivo /etc/cron.d/ e [b] corrigir o bug no módulo pam do cron:
[root@osestaging1 discourse]# cat /var/discourse/templates/unattended-upgrades.template.yml run:
- file:
path: /etc/cron.d/unattended-upgrades
contents: |+
################################################################################
# Arquivo: /etc/cron.d/unattended-upgrades
# Versão: 0.1
# Propósito: executar unattended-upgrades em vez do systemd. Para mais informações, veja
# * https://wiki.opensourceecology.org/wiki/Discourse
# * https://meta.discourse.org/t/does-discourse-container-use-unattended-upgrades/136296/3
# Autor: Michael Altfield <michael@opensourceecology.org>
# Criado: 2020-03-23
# Atualizado: 2020-03-23
################################################################################
20 04 * * * root /usr/bin/nice /usr/bin/unattended-upgrades --debug
- exec: /bin/echo -e "\n" >> /etc/cron.d/unattended-upgrades
# corrigir o bug do cron no Docker 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]#
Infelizmente, não tenho 100% de certeza sobre todas as consequências de fazer essa alteração no módulo pam.d do cron. Mas parece-me que é a correção reconhecida upstream :\