
Ich erstelle mit Cron ein neues Image, das auf dem Image basiert php:7.3-apache-buster
.
Der Aufbau des Images verläuft reibungslos. Der Container wird ebenfalls mit dem Status „Up“ erstellt. Allerdings http://localhost:8082
wird beim Tippen im Browser keine Apache-Seite angezeigt. Der Apache-Dienst wird vom php:7.3-apache-buster
Image übernommen.
In meiner Docker-Datei lautet die letzte Zeile CMD cron && tail -f /var/log/cron.log
. Ich glaube, dass diese Zeile das Problem verursacht.
Wenn ich mit dem Befehl den Container betrete docker exec -it cont-mysite-01 /bin/bash
und den Befehl ausführe service apache2 start
, startet Apache normal.
Was verstehe ich nicht?
Wie kann ich ein Image erstellen, bei dem der Apache aus dem Basisimage und der Cron aus dem neuen Image zusammenarbeiten?
Meine Referenzen:
Antwort1
Ich habe das Problem wie folgt gelöst:
Ich habe die Zeile CMD cron && tail -f /var/log/cron.log
aus der Docker-Datei entfernt.
Dann habe ich die Zeile hinzugefügt RUN sed -i 's/^exec /service cron start\n\nexec /' /usr/local/bin/apache2-foreground
.
Nachdem Sie den Container mit dem Image erstellt haben, führen Sie die folgenden Befehle aus, um Apache2 und Cron zu überprüfen:
docker exec -it cont-mysite-01 service apache2 status
docker exec -it cont-mysite-01 service cron status
Link der mir geholfen hat:
http://www.idein.it/joomla/14-docker-php-apache-with-crontab