Eu instalei o rsyslog
para ver quais erros eu estava recebendo Eu consegui o seguinte
(*system*) NUMBER OF HARD LINKS > 1 (/etc/crontab)
. Um pouco de pesquisa me disse que cron
tem uma política de segurança para não funcionar se houver muitos hard-links para seus arquivos. Infelizmente, o sistema de arquivos em camadas do Docker faz com que os arquivos tenham muitos hard-links.
Para corrigir isso, adicionei touch /etc/crontab /etc/cron.*/*
ao script de inicialização antes de executar cron
. Isso desativa se das outras instâncias de arquivo.
O novo ponto de entrada é
#!/bin/sh
#fix link-count, as cron is being a pain, and docker is making hardlink count >0 (very high)
touch /etc/crontab /etc/cron.*/*
service cron start
# Hand off to the CMD
exec "$@"
Eu testei e funciona
Resumo
Para fazer com que cron
funcione, você terá que fazer isso.
- Instale
cron
- se não estiver instalado - Adicione a tarefa cron a
/etc/cron.daily/
(ou semanalmente). Certifique-se de que o nome do seu script tenha apenas letras, números, hifens, sem pontos . (Não pergunte) veja trabalho cron não executado a partir do cron.daily - Obtenha a contagem de hardlinks de
cron
s arquivos de configuração para um: dotouch /etc/crontab /etc/cron.*/*
- (se no docker). Eu coloquei no script de inicialização. - Iniciar
cron
:service cron start
- (Se estiver em um sistema operacional básico, sem init. Como em muitas imagens de base para uso no docker). Eu coloquei no script de inicialização.
O script do ponto de entrada desta resposta e tudo o mais da pergunta fará isso. O projeto atual pode ser obtido com hg clone ssh://[email protected]/davids_dad/a_website