
Я создаю новый образ с помощью cron, который основан на php:7.3-apache-buster
образе.
Сборка образа проходит без сучка и задоринки. Контейнер также создается со статусом Up. Однако в браузере при вводе http://localhost:8082
не отображается страница Apache. Служба Apache унаследована от php:7.3-apache-buster
образа.
В моем Dockerfile последняя строка — CMD cron && tail -f /var/log/cron.log
. Я считаю, что именно эта строка создает проблему.
Если я вхожу в контейнер с командой docker exec -it cont-mysite-01 /bin/bash
и запускаю команду service apache2 start
, Apache запускается нормально.
Чего я не понимаю?
Как создать образ, в котором Apache из базового образа и Cron из нового образа будут работать вместе?
Мои ссылки:
решение1
Я решил проблему следующим образом:
Я удалил строку CMD cron && tail -f /var/log/cron.log
из Dockerfile.
Затем я добавил строку RUN sed -i 's/^exec /service cron start\n\nexec /' /usr/local/bin/apache2-foreground
.
После создания контейнера с образом выполните команды для проверки Apache2 и Cron:
docker exec -it cont-mysite-01 service apache2 status
docker exec -it cont-mysite-01 service cron status
Ссылка, которая мне помогла:
http://www.idein.it/joomla/14-docker-php-apache-with-crontab