Nextcloud und Docker, ein Drama

Hallo,

uff, das ist ein unschönes Problem, ich versuche dass mal zu beschreiben:
Im Container wird /var/run nicht aufgeräumt. Apache legt dort eine Datei /var/run/apache2/apache2.pid an. Existiert diese Datei, prüft apache ob die PID aus dieser Datei gerade läuft und beendet sich dann. Existiert diese PID nicht, startet der Apache Daemon ganz normal. Wenn der Container nun gestoppt wird, verbleibt die PID Datei und der nächste Start kann unter Umständen fehlschlagen, weil die PID aus var/run/apache2/apache2.pid nun von einem anderen Prozess belegt ist.

Workaround für UCDS 4.1:
Die Dateien in /var/run sind eigentlich alle nur “temporär” und können/sollten beim Neustart des Containers gelöscht werden. Vor daher wäre ein möglicher Workaround das Löschen der Apache PID Datei aus dem Container Verzeichnis auf dem Docker Host. Beim nächsten Start des Containers gibt es dann keine Apache PID Datei mehr und es sollte alles normal starten. Also bitte einmal diese Datei auf dem Docker Host Löschen (bei gestoppten Container).

  • erstmal prüfen, ob die Datei existiert und die PID die gleiche ist, wie aus der Fehlermeldung des letzten Startversuchs
    more "/var/lib/docker/overlay/$(ucr get appcenter/apps/nextcloud/container)/upper/run/apache2/apache2.pid"
  • dann die Datei Löschen
    rm "/var/lib/docker/overlay/$(ucr get appcenter/apps/nextcloud/container)/upper/run/apache2/apache2.pid"
  • und den Container nochmal starten
    docker logs d4acde546250

Ab UCS 4.2 verwenden alle Docker Container tmpfs für /var/run (/run), so dass dort diese Verzeichnisse nur solange existieren, bis der Container gestoppt wird.

VG
Felix

1 Like