FYI, j’ai réparé l’installation cassée de unattended-upgrades (qui ne fonctionne pas sans systemd dans le conteneur Docker de Discourse) en le déclenchant via une tâche cron.
J’ai créé le fichier modèle YAML suivant dans mon répertoire /var/discourse/templates/ pour créer la tâche cron nécessaire (notez qu’il contient également une commande pour corriger un bug avec cron présent dans l’image Docker de Discourse basée sur Debian) :
cat << EOF > /var/discourse/templates/unattended-upgrades.template.yml
run:
- file:
path: /etc/cron.d/unattended-upgrades
contents: |+
################################################################################
# Fichier: /etc/cron.d/unattended-upgrades
# Version: 0.2
# Objectif: exécuter unattended-upgrades à la place de systemd. Pour plus d'infos 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-04-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 cron de 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
EOF
Pour activer le fichier modèle ci-dessus, vous devez l’ajouter à votre liste de templates dans le fichier YAML de votre application. Par exemple,
[root@osestaging1 discourse]# head -n20 /var/discourse/containers/app.yml
## ceci est le modèle de conteneur Docker Discourse tout-en-un, autonome
##
## Après avoir apporté des modifications à ce fichier, vous DEVEZ reconstruire
## /var/discourse/launcher rebuild app
##
## SOYEZ *TRÈS* PRUDENT EN ÉDITANT !
## LES FICHIERS YAML SONT EXTRÊMEMENT SENSIBLES AUX ERREURS D'ESPACEMENT OU D'ALIGNEMENT !
## visitez http://www.yamllint.com/ pour valider ce fichier si nécessaire
templates:
- "templates/unattended-upgrades.template.yml"
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
# - "templates/web.socketed.template.yml"
- "templates/web.modsecurity.template.yml"
- "templates/web.ratelimited.template.yml"
## Décommentez ces deux lignes si vous souhaitez ajouter Lets Encrypt (https)
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"
[root@osestaging1 discourse]#