FYI, corrigi a instalação quebrada do unattended-upgrades (que na verdade não executa sem systemd no contêiner Docker do Discourse) ao acioná-lo para rodar via um job de cron.
Criei o seguinte arquivo de modelo YAML no meu diretório /var/discourse/templates/ para criar o job de cron necessário (observe que ele também inclui um comando para corrigir um bug com cron presente na imagem Docker do Discourse baseada em Debian):
cat << EOF > /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.2
# Propósito: executar unattended-upgrades no lugar 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-04-23
################################################################################
20 04 * * * root /usr/bin/nice /usr/bin/unattended-upgrades --debug
- exec: /bin/echo -e "\n" >> /etc/cron.d/unattended-upgrades
# corrige 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
EOF
Para habilitar o arquivo de modelo acima, você precisa adicioná-lo à sua lista de templates no arquivo YAML do seu aplicativo. Por exemplo:
[root@osestaging1 discourse]# head -n20 /var/discourse/containers/app.yml
## este é o modelo de contêiner Docker Discourse all-in-one, standalone
##
## Após fazer alterações neste arquivo, você DEVE reconstruir
## /var/discourse/launcher rebuild app
##
## TENHA *MUITO* CUIDADO AO EDITAR!
## ARQUIVOS YAML SÃO SUPER SENSÍVEIS A ERROS DE ESPAÇAMENTO OU ALINHAMENTO!
## visite http://www.yamllint.com/ para validar este arquivo conforme necessário
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"
## Descomente estas duas linhas se quiser adicionar o Lets Encrypt (https)
#- "templates/web.ssl.template.yml"
#- "templates/web.letsencrypt.ssl.template.yml"
[root@osestaging1 discourse]#