Como posso configurar a inicialização do cron em uma nova imagem sem prejudicar o serviço Apache?

Como posso configurar a inicialização do cron em uma nova imagem sem prejudicar o serviço Apache?

Estou criando uma nova imagem com o cron baseada na php:7.3-apache-busterimagem.

A construção da imagem ocorre sem problemas. O contêiner também é criado com um status Ativo. No entanto, no navegador, quando digito, http://localhost:8082nenhuma página do Apache é mostrada. O serviço Apache é herdado da php:7.3-apache-busterimagem.

No meu Dockerfile a última linha é CMD cron && tail -f /var/log/cron.log. Acredito que seja essa linha que gera o problema.

Se eu entrar no container com o comando docker exec -it cont-mysite-01 /bin/bashe executar o comando service apache2 start, o Apache inicia normalmente.

O que não estou entendendo?

Como posso construir uma imagem onde o Apache da imagem base e o Cron da nova imagem funcionem juntos?

Minhas referências:

https://github.com/Ekito/docker-cron/blob/master/Dockerfile

https://hub.docker.com/_/php

Responder1

Resolvi o problema da seguinte forma:

Removi a linha CMD cron && tail -f /var/log/cron.logdo Dockerfile.

Então adicionei a linha RUN sed -i 's/^exec /service cron start\n\nexec /' /usr/local/bin/apache2-foreground.

Após criar o container com a imagem execute os comandos para verificar Apache2 e Cron:

docker exec -it cont-mysite-01 service apache2 status

docker exec -it cont-mysite-01 service cron status

Link que me ajudou:

http://www.idein.it/joomla/14-docker-php-apache-with-crontab

informação relacionada