
이미지 를 기반으로 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