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
crons 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