Nextcloud und Docker, ein Drama

ucs-4-1
german
nextcloud

#1

Hallo,

ich habe vor ein paar Tagen versucht eine ownCloud Installation Richtung Nextcloud zu migrieren, d.h. es läufen beide Systeme parallel auf einem Server und die Daten werden manuell migriert, also keine Skripte o.ä. im Einsatz.
Nun war das Problem, dass Nextcloud irgendwie nicht mehr richtig lief und ich wollte einfach über einen Neustart des Docker-Containers dies beheben, dabei stellte ich leider fest, ein Nextcloud läßt sich zwar im Docker beenden, anschließend aber nicht mehr starten. Ein Neustart des Server half weiter, danach lief wieder alles.
Nun habe ich jedoch weiterhin das Problem, dass Nextcloud nicht zuverlässig läuft, jedoch mittlerweile so ungeeignet, dass es nicht einmal mehr den Container startet.

service docker-app-nextcloud start
[ ok ] Starting nextcloud Container d4acde54625082e4c30d4b221d86f5b0e1d8bf8b0f3e769941905df5f69e6f89 …
root@master:/var/lib# service docker-app-nextcloud status
stopped

Unter /var/log/docker.log waren die letzten Einträge von 2015, ein Neuerstellen der Datei und Neustart von Docker ändert nichts daran, nun bleibt die Datei immer leer.
Nach einigen Stunden Frust wollte ich Nextcloud komplett runterschmeissen und auf einer anderen / neuen Maschine wieder installieren, jedoch nicht einmal das ist mit Bormitteln möglich.


Leider helfen mir die Docker-Treffen über Google auch nicht so richtig weiter, weil ich nicht weiß, ob ich damit beim UCS irgendetwas kaputt mache, was auf diesem Server fatal wäre, da er DC und Mailserver (Zarafa/Kopano) zur Verfügung stellt.

Über jeden Tipp wäre ich sehr dankbar, denn so möchte ich das System ungerne “stehen lassen”.

Danke im Voraus und VG,
Christian.


Mattermost deinstallation
#2

Manuell migriert? Update Routinen finden statt, wenn in der Datenbank und Config-Datei eine alte (ownCloud)-Installation vorgefunden wird. Ich wüsste nicht, wie das manuell funktionieren soll? Außer, es werden lediglich Dateien hin- und herkopiert.

Die weiteren Angaben sind leider alle etwas vage, ohne genau Problembeschreibungen und Logdateien. Eventuell hilft ein Update auf 11.0.3 bereits? :slight_smile:


#3

Hallo,

ich wüsste nicht, dass es eine direkte Migration von ownCloud 8 zu Nextcloud 11 gibt, auch nicht innerhalb von UCS. Außerdem war ownCloud noch nicht als Docker App, was Nextcloud ist. Auch könnte ich keine Migrationsversuche bestätigen, da weder oenCloud-altivierte Benutzer auch ein Häkchen bei Nextcloud hatten, noch waren in der Nextcloud irgendwelche Einstellungen und Dateien vorhanden.
Ich würde ja gerne mehr Angaben machen, aber in der /var/log/docker.log steht nichts drin, der Docker-Container mit Nextcloud startet nicht und ich weiß nicht, warum, da ich keine Log-Files dazu finden kann.
Ein Update auf 11.0.3 ist noch nicht im AppCenter von Univention verfügbar, wird aber vermutlich auch wie auch die Deinstallation scheitern, vermute ich einmal.
Alles was ich will, ist die Nextcloud-Docker-App vom UCS entfernen, und zwar so, dass innerhalb des UCS Domain Master nichts kaputt geht.

Wer mir dazu helfen kann, dem danke ich vielmals im Voraus. :slight_smile:


#4

Hallo Christian,

magst du mal in /var/log/univention/management-console-module-appcenter.log schauen, ob da mehr Informationen zu dem Fehler stehen? Ich hab die Hoffnung dass man da sieht, warum das “Image upgrade script (pre)” fehlschlägt.

Falls da auch was drinsteht, dass der Container nicht gestartet oder beendet werden konnte, kannst du auch mal versuchen den Container direkt via docker zu starten:

# Container-ID raussuchen:
docker ps -a
# Container starten:
docker start $ContainerID

Ich erwarte nicht, dass das funktioniert, aber evtl. gibt da eine Fehlermeldung mehr Aufschluss.


#5

Hallo Grandjean,

aus dem Log-File entnehme ich, was ich auch schon wusste, der Container startet nicht korrekt.

17.05.17 11:57:17.369  MODULE      ( PROCESS ) : Going to remove Nextcloud (11.0.2-0)
17.05.17 11:57:17.456  MODULE      ( PROCESS ) :    Die Deinstallation von Nextcloud wird ebenfalls alle Daten entfernen.
17.05.17 11:57:17.456  MODULE      ( PROCESS ) : 
17.05.17 11:57:17.456  MODULE      ( PROCESS ) :    Falls diese behalten werden sollen, sollte ein Backup der nextcloud
17.05.17 11:57:17.456  MODULE      ( PROCESS ) :    Datenbank aus PostgreSQL sowie vom Datenordner
17.05.17 11:57:17.456  MODULE      ( PROCESS ) :    /var/lib/univention-appcenter/apps/nextcloud/data angelegt werden, bevor
17.05.17 11:57:17.457  MODULE      ( PROCESS ) :    mit der Deinstallation fortgefahren wird.
17.05.17 11:57:19.271  MODULE      ( PROCESS ) : Starting nextcloud Container d4acde54625082e4c30d4b221d86f5b0e1d8bf8b0f3e769941905df5f69e6f89 ....
17.05.17 11:57:19.402  MODULE      ( PROCESS ) : Executing interface store_data for nextcloud
17.05.17 11:57:19.402  MODULE      ( PROCESS ) : Copying App Center's store_data to container's /usr/share/univention-docker-container-mode/store_data_custom
17.05.17 11:57:19.432  MODULE      ( PROCESS ) : time="2017-05-17T11:57:19+02:00" level=fatal msg="Error response from daemon: Container d4acde54625082e4c30d4b221d86f5b0e1d8bf8b0f3e769941905df5f69e6f89 is not running" 
17.05.17 11:57:19.611  MODULE      ( WARN    ) : Image upgrade script (pre) failed
17.05.17 11:57:19.611  MODULE      ( WARN    ) : Storing data for nextcloud=11.0.2-0 failed
17.05.17 11:57:19.612  MODULE      ( PROCESS ) : Could not backup container!
17.05.17 11:57:19.612  MODULE      ( PROCESS ) : Aborting...
17.05.17 11:57:19.838  MODULE      ( PROCESS ) : nextcloud=11.0.2-0: Not running, cannot check further

Auch ein manuelles Startet sagt leider nichts Brauchbares aus:

root@master:/var/log/univention# docker ps -a
CONTAINER ID        IMAGE                                              COMMAND                CREATED             STATUS                      PORTS               NAMES
d4acde546250        docker.software-univention.de/nextcloud:11.0.2-0   "/bin/sh -c /usr/sbi   4 weeks ago         Exited (0) 59 seconds ago                       jolly_ritchie       
root@master:/var/log/univention# docker start d4acde546250
d4acde546250

Der Container wird definitiv nicht gestartet, und deshalb schlagen auch alle Operationen wie Update/Remove/usw. fehl :frowning:

Gruß, Christian.


#6

… keiner mehr eine Idee? :frowning:


#7

… hat wirklich niemand eine Idee, wie ich den Docker Container korrekt aus dem UCS entfernt bekomme?


#8

Hi,

was sagt

docker logs d4acde546250

VG
Felix


#9

Hallo Felix,

nur einen endlos loop von

 * Starting periodic command scheduler cron
   ...done.
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.7. Set the 'ServerName' directive globally to suppress this message
httpd (pid 21) already running

VG, Christian.


#10

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


#11

Hallo Felix,

cool, vielen Dank … dadurch konnte ich den Container wieder starten und anschließend deinstallieren.
SUPER HERZLICHEN DANK!

VG, Christian.