
Estoy creando una nueva imagen con cron que se basa en la php:7.3-apache-buster
imagen.
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:8082
no se muestra ninguna página de Apache. El servicio Apache se hereda de la php:7.3-apache-buster
imagen.
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/bash
y 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:
Respuesta1
Resolví el problema de la siguiente manera:
Eliminé la línea CMD cron && tail -f /var/log/cron.log
del 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