cron e crontab estão faltando na imagem do docker do ubuntu 16.04

Este é o meu Dockerfile

FROM ubuntu:16.04RUN apt-get update -y && apt-get install -y \  git \  python \  python-pip

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?

O comando cron não é instalado por padrão na imagem ubuntu:16.04

Precisa correr apt-get install 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.

Você pode instalar cron com:

RUN apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install \      cron \ && apt-get clean \ && rm -rf /var/lib/apt/lists/*

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.

Basta instalá-lo?

Faça um comando crontab que também você pode mover para outro shell como como como bash se ele estiver instalado e tentar com a conclusão bash

Caso contrário, yoi deve escolher outra imagem ou construir uma privada para seu uso futuro

@ 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