Ich arbeite an einer Web-App, die Zugriff auf das Dateisystem eines QNAP-NAS benötigt, um darin Verzeichnisse und Dateien zu bearbeiten und anzulegen.
Um das NFS im Docker-Container einzubinden, habe ich folgende Docker Compose Datei benutzt:
services:
app:
... # Irrelevante Sachen
volumes:
- .:/app
- "nfs-base:/Z" # Das NFS-Volume wird im Container auf das /base Verzeichnis gemountet
volumes:
nfs-base:
driver: local
driver_opts:
type: nfs
o: "nfsvers=4,addr=IPADRESSE_DES_QNAP-NAS,rw"
device: ":/"
Beim Erstellen des Volumes erhalte ich keinen Fehler und wenn ich den Container untersuche, wird das Verzeichnis :/Z/base erstellt. Das bedeutet, dass der freigegebene Ordner base des QNAP-Dateisystems korrekt gemountet, oder zumindest von der docker-compose Datei erkannt wird.
Das Problem entsteht, wenn ich im Container überprüfe, ob die Dateien in :/Z/base richtig eingebunden wurden.
Wenn ich im Container auf das /base Verzeichnis zugreifen möchte, bekomme ich den Fehler: bash: cd: base/base: Operation not permitted.
Wenn ich die Berechtigungen des Ordners im Container überprüfe, erhalte ich folgende Ausgabe:
drwxrwxrwx 28 1000 root 4096 Mai 10 09:04 base
Ich vermute, das Problem hängt mit den Berechtigungen für den Zugriff auf den geteilten Ordner zusammen – da ich ganz neu bei QNAP bin, weiß ich aber nicht, wie ich diese Berechtigungen vergeben kann.
Hinweis: Wenn ich vom selben Host, auf dem der Docker-Container läuft, per SSH auf das QNAP-NAS-Verzeichnis /base zugreife, habe ich keinerlei Berechtigungsprobleme und kann alle Dateien im base-Ordner öffnen.
Wie kann ich dem Docker-Container Lese-/Schreibrechte auf ein per NFS gemountetes Verzeichnis geben?
