¿Cómo puedo configurar el inicio cron en una nueva imagen sin dañar el servicio Apache?

¿Cómo puedo configurar el inicio cron en una nueva imagen sin dañar el servicio Apache?

Estoy creando una nueva imagen con cron que se basa en la php:7.3-apache-busterimagen.

La construcción de la imagen se realiza sin problemas. El contenedor también se crea con el estado Arriba. Sin embargo, en el navegador, cuando escribo, http://localhost:8082no se muestra ninguna página de Apache. El servicio Apache se hereda de la php:7.3-apache-busterimagen.

En mi Dockerfile la última línea es CMD cron && tail -f /var/log/cron.log. Creo que es esta línea la que genera el problema.

Si entro al contenedor con el comando docker exec -it cont-mysite-01 /bin/bashy ejecuto el comando service apache2 start, Apache se inicia normalmente.

¿Qué no estoy entendiendo?

¿Cómo puedo crear una imagen en la que Apache de la imagen base y Cron de la nueva imagen funcionen juntos?

Mis referencias:

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

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

Respuesta1

Resolví el problema de la siguiente manera:

Eliminé la línea CMD cron && tail -f /var/log/cron.logdel Dockerfile.

Luego agregué la línea RUN sed -i 's/^exec /service cron start\n\nexec /' /usr/local/bin/apache2-foreground.

Después de crear el contenedor con la imagen, ejecute los comandos para verificar Apache2 y Cron:

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

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

Enlace que me ayudó:

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

información relacionada