Depois que a imagem do docker é criada, eu faço o login e tento configurar um trabalho cron para teste. Para minha surpresa, cron e crontab não estão presentes.
# ls app bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var# crontab -l/bin/sh: 6: crontab: not found# crontab -l/bin/sh: 7: crontab: not found# crontab -l/bin/sh: 10: crontab: not found# cron/bin/sh: 11: cron: not found
Mas eu espero cron estar presente em uma imagem do ubuntu. Eu escolhi uma imagem errada ou há algo que eu precise fazer para habilitar cron?
As imagens do Docker são mínimas por design e são usadas para criar contêineres, não um sistema operacional completo. Um contêiner está isolando a execução de um aplicativo, portanto, não terá todos os outros daemons do sistema operacional em execução dentro desse ambiente, como cron, syslog, mail etc., por padrão.
dentro do seu Dockerfile. No entanto, para executar as entradas crontab, você também precisa iniciar o DAEMON cron como parte do processo de inicialização do contêiner. Existem ferramentas como forego e supervisord que você pode usar para executar vários processos em seu contêiner (cron mais seu aplicativo), mas isso geralmente é o sinal de um anti-padrão.
@ MezganiAli ‘qual crontab’ confirma que não está instalado. Acho que vou instalá-lo. Não encontrei esse problema ao instalar o ubuntu normalmente na VM ou no PC real. Então não tenho certeza por que está faltando