NextCloud Docker mit NFS Storage

  • Hallo in die Runde!


    Am Wochenende wollte ich mal gerade eben eine zweite Nextcloud Docker Instanz für unser Archiv einrichten. Hat leider nicht so richtig geklappt...


    Das Ziel:

    • Nexcloud als Docker für unser Archiv
    • kleiner vServer
    • NetCup Speichererweiterung über NFS
    • NextCloud data-Folder /var/www/html/data als eigenes Docker Volume auf dem NFS Storage

    Da das ganze nur als Archiv laufen soll und nur 1-4 User parallel drauf zugreifen, ist Performance absolut kein Kriterium.


    Verwendung findet:

    Das docker-compose.yml File habe ich dahingehend angepasst, dass das data Verzeichnis als eigenes Volume eingebunden wird:

    Code
    1. app:
    2. image: nextcloud:fpm-alpine
    3. restart: always
    4. volumes:
    5. - nextcloud:/var/www/html
    6. - /var/storage/docker/nextcloud/data:/var/www/html/data


    Den ganzen Quatsch habe ich bei meiner privaten Nextcloud Installation auch genau so ans laufen bekommen, nur habe ich jetzt irgend ein behämmertes Berechtigungsproblem, dem ich irgendwie nicht auf die Spur komme. Folgende Fehlermeldung erhalte ich:

    Quote

    Es gibt einige Fehler bei Deiner Systemkonfiguration.

    • Die Ausführung des Cron-Jobs über die Kommandozeile war nicht möglich. Die folgenden technischen Fehler sind dabei aufgetreten:
      • Your data directory is invalid Ensure there is a file called ".ocdata" in the root of the data directory.
      • Your data directory is not writable Permissions can usually be fixed by giving the webserver write access to the root directory. See https://docs.nextcloud.com/ser…?to=admin-dir_permissions.
    • Letzte Cron-Job-Ausführung: Vor 2 Tagen. Möglicherweise liegt ein Fehler vor. Überprüfe Cron-Job Einstellungen


    Bei der Installation des Docker Containers wird das Verzeichnis korrekt unter /var/storage/docker/nextcloud/data samt Inhalt angelegt und dem System unbekannten UID/GID 82 zugeordnet. Auf meinem anderen System ist übrigens Verzeichnis und Inhalt dem Systemuser www-data. Ich habe dann mal versucht das manuell nachzuziehen. Was mir dann wiederholt die Nextcloud nicht verziehen hat.


    *kopfkratz* Ich habe langsam so den Eindruck, dass das so nicht gedacht ist, wie ich versuche via Docker-Volume die Daten auf ein NFS-Volume umzubiegen. Interessant nur, dass das auf einem anderen System so geht.

    Vorschläge??? ;-)

  • Hay,


    ja, ganz klar, Unix-Rechte.


    Ich selbst habe mit Docker noch nie etwas installiert, deswegen nur rein oberflächlich... Wichtig ist hier die Perspektive: welche Rechte der lokale Webserver auf dem Docker-Host in das Verzeichnis hat, spielt keine Rolle. Wichtig ist, dass der Webserver, der im Docker-Container läuft, Zugriff auf das Verzeichnis hat (also die Sicht vom Container auf dem Host ist entscheidend). Wie und was weiter weiß ich allerdings nicht, da kommt sicher noch der eine oder andere Helfer hier vorbei :D


    CU, Peter

  • Hallo,


    ich nehme an, du bindest das NFS Verzeichnis erst einmal lokal auf dem Host ein und gibst es dann an den Container als Host Folder durch? Das halte ich für etwas ungünstig, da Docker selbst direkt mit dem NFS Server sprechen kann und einen NFS Treiber dafür bereit stellt. Dadurch lässt sich das NFS Verzeichnis als Docker Volume behandeln, was es etwas einfacher macht.


    Hier ist auch ein Beispiel dazu: https://docs.docker.com/engine…ommandline/volume_create/


    Ansonsten hat CmdrXay da schon recht mit seiner Andeutung. Der Prozess in dem Container läuft mit einer UID, die so genau auch auf dem Host sichtbar ist. Nur gitb es auf dem Host keinen User mit der UID, daher steht da einfach nur eine Zahl. Das passt aber ingesamt dann schon.


    Wenn du die Berechtigungen des Ordners auf dem Host auf die entsprechende UID setzt, sollte das aber im Grunde funktionieren.