Apache 서비스를 손상시키지 않고 새 이미지에서 cron 시작을 구성하려면 어떻게 해야 합니까?

Apache 서비스를 손상시키지 않고 새 이미지에서 cron 시작을 구성하려면 어떻게 해야 합니까?

이미지 를 기반으로 cron을 사용하여 새 이미지를 만들고 있습니다 php:7.3-apache-buster.

이미지 빌드가 문제 없이 진행됩니다. 컨테이너도 Up 상태로 생성됩니다. 그러나 브라우저에 입력하면 http://localhost:8082Apache 페이지가 표시되지 않습니다. 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 startApache가 정상적으로 시작됩니다.

내가 이해하지 못하는 것이 무엇입니까?

기본 이미지의 Apache와 새 이미지의 Cron이 함께 작동하는 이미지를 빌드하려면 어떻게 해야 합니까?

내 참고자료:

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

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

답변1

나는 다음과 같이 문제를 해결했습니다.

CMD cron && tail -f /var/log/cron.logDockerfile에서 해당 줄을 제거했습니다 .

그런 다음 줄을 추가했습니다 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

관련 정보