Besitzer von Files aus Docker-Container

matmike

Benutzer
Mitglied seit
11. Apr 2012
Beiträge
78
Punkte für Reaktionen
2
Punkte
8
Hallo zusammen,

derzeit nutze ich einen Docker-Container ("conrad784/mediathekview-webinterface"), um Dateien aus den Mediatheken herunterzuladen.
Das funktioniert auch alles erst mal super. Einzig die Dateien, die in den /output innerhalb des Containers geschrieben und auf der DS in einem Unterordner des video-Ordners im Dateisystem abgelegt werden sollen, haben den user root. Damit sind sie erst mal nicht direkt nutzbar.
Wie kann ich das Verhalten denn ändern, damit sie einen anderen Besitzer bekommen (im Idealfall den, dem auch der Ordner video gehört)ß

Danke und viele Grüße,
Matthias
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.191
Punkte für Reaktionen
4.923
Punkte
519
Du musst dem Docker Container per Environment Variable mitgeben, als welcher User er laufen soll. Falls er das unterstützt. Die Info musst du beim Container in der Dokumentation suchen
 
  • Like
Reaktionen: matmike

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
Ich hab mir mal das Dockerfile angesehen aus dem das Image erzeugt wird. Dort werden USER_ID und GROUP_ID definiert (aber nirgendwo verwendet?)

Probier mal aus, ob es wirklich etwas bringt die Variablen zu setzen:
- USER_ID=1026
- GROUP_ID=100

Die USER_ID (eignetlich UID) von deinem user kannst Du per SSH Terminal mit dem Befehl id herausfinden.
 
  • Like
Reaktionen: matmike

matmike

Benutzer
Mitglied seit
11. Apr 2012
Beiträge
78
Punkte für Reaktionen
2
Punkte
8
Herzlichen Dank für die Hilfe, es hat geklappt, die Felder sind auch in der Konfiguration des Containers schon vorhanden!
Eigentlich offensichtlich, aber ich starte gerade wieder mit den Docker-Themen, da ich von meinem Pi weg will.

--edit--:
Kleine Ergänzung: Der Teil in Docker war gar nicht das Problem. Synology Drive erkennt anscheinend nicht, wenn über einen Docker etwas in ein Verzeichnis geschrieben wird und synchronisiert das dann auch nicht. Hat Jemand von Euch eine Idee, was ich da machen kann und ob es eine Möglichkeit gibt, das zu ändern? Sobald ich die Datei umbenenne, den Nutzer ändere auf einen beliebigen anderen oder irgendeine andere Dateioperation (cp, mv) ausführe, wird die Datei synchronisier von Drive.
 
Zuletzt bearbeitet:

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
Ich vermute mal das Synology Drive Dateisystemeents dafür nutzt, diese werden im Kernel bei Änderungen registriert und darüber bei allen interessierten bekannt gemacht (=in diesem Fall Synology Drive).

Schau mal, ob Synology Drive so konfiguriert werden kann, dass es stattdessen das Verzeichnis polled.

Wenn es die Option nicht gibt, dann versuch mal beim Container den Container-Pfad exakt wie den Host-Pfad zu konfigurieren und mediathekview entsprechend so zu konfigurieren, dass es den geänderten Container-Pfad nutzt. Ich könnte mir vorstellen, dass bei gleichlautenden Pfaden der Host etwas mit den Dateisystemevents anfangen kann.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.191
Punkte für Reaktionen
4.923
Punkte
519
Das Phänomen ist bekannt und war leider bei Drive schon immer so.
 

matmike

Benutzer
Mitglied seit
11. Apr 2012
Beiträge
78
Punkte für Reaktionen
2
Punkte
8
OK, vielen Dank! Ich habe jetzt eine Lösung ohne Synology Drive und ohne Nachteile gefunden, also löse ich das erst mal nicht auf.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.191
Punkte für Reaktionen
4.923
Punkte
519
Wie meinst du das? Du hast eine Lösung gefunden, aber willst sie uns nicht mitteilen?
 

matmike

Benutzer
Mitglied seit
11. Apr 2012
Beiträge
78
Punkte für Reaktionen
2
Punkte
8
Sorry, doch, sehr gerne. Aber es ist keine Lösung, die das Problem an sich löst sondern nur meinen Workflow.

Ich hatte ursprünglich MediathekView auf meinem PC genutzt, die Dateien in ein lokales Verzeichnis heruntergeladen und dann per Synology Drive auf die DS synchronisiert.
Durch den Umzug wäre der Weg andersrum spannend gewesen, da jetzt die Files auf der DS liegen und auf den PC müssten.
Meine Lösung sieht einfach so aus, dass ich die Files nicht lokal auf dem PC bearbeite sondern auf der DS direkt und von dort verteile. Ich muss das nur, wenn ich zwischen verschiedenen Shares verteile, über die FileStation und nicht die SMB-Shares machen, sonst wird es zu langsam beim Kopieren.

Wie gesagt, das ist eine Workflow-spezifische Lösung und hilft leider nicht grundsätzlich.

Vielleicht aber ein Hinweis für manche Use-Cases, da in Synology Drive die von haydibe vorgeschlagenen Einstellungen nicht möglich sind: Man kann eine Aufgabe im Aufgabenplaner erstellen, die die Files alle einfach in ein Verzeichnis höher verschiebt (sinngemäß "mv * .."). Damit wäre es theoretisch gegangen, allerdings ist das halt nicht in Echtzeit möglich. Ich habe es testweise einfach über SSH ausprobiert und Dateien kopiert oder verschoben. Da greift dann vermutlich der oben beschriebene Mechanismus der Dateisystemevents.

Viele Grüße,
Matthias
 
  • Like
Reaktionen: plang.pl

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.191
Punkte für Reaktionen
4.923
Punkte
519
Danke für die Info. Man könnte auch Folgendes Versuchen:
-eine Drive Neuindizierung via Script. Ist aber viel Overhead. Ich würde es nicht machen.
-irgendwas mit den inotify Tools basteln. Gibt es als 3rd Party Paket im Paketzentrum. Der erkennt jede Dateisystemänderung und kann dann Aktionen ausführen. Eventuell kann man da auf die neu erstellte Datei einen Touch Befehl ausführen, um so Drive eine Änderung mitzuteilen (insofern Drive das dann realisiert)
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat