
Estou criando uma nova imagem com o cron baseada na php:7.3-apache-buster
imagem.
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:8082
nenhuma página do Apache é mostrada. O serviço Apache é herdado da php:7.3-apache-buster
imagem.
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/bash
e 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:
Responder1
Resolvi o problema da seguinte forma:
Removi a linha CMD cron && tail -f /var/log/cron.log
do 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