Docker Kopiere und ändere den Besitzer
Angesichts der folgenden Dockerfile
FROM ubuntu
RUN groupadd mygroup
RUN useradd -ms /bin/bash -G mygroup john
MKDIR /data
COPY test//data/test data
RUN chown -R john:mygroup /data
CMD /bin/bash
In meinem test Verzeichnis, das kopiert habe ich die Datei-Berechtigungen auf 770.
Wenn ich einen su john
in meinem container, ich kann nicht zugreifen auf die Dateien oder Unterverzeichnisse in meinem test Verzeichnis. Es scheint dieses problem bezieht sich auf das Eigentum an dem aufs-Dateisystem, in dem die kopierte Verzeichnis noch im Besitz von root und Berechtigungen festgelegt werden, 770.
Gibt es eine Abhilfe für dieses problem, um die Berechtigungen korrekt? Man könnte, um die Berechtigungen für die original-Verzeichnis, um die uid des container-Benutzer vor dem kopieren. Aber dies scheint mehr wie ein hack.
InformationsquelleAutor der Frage Christian Metzler | 2015-03-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen
--chown
Flagge wurde endlich HinzugefügtCOPY
:Diese neue syntax scheint zu funktionieren auf Docker 17.09.
Sehen die PR für weitere Informationen.
InformationsquelleAutor der Antwort Georgi Hristozov
Ich denke ich habe eine Lösung gefunden, die funktioniert. Mithilfe einer Daten-Volumen container wird den trick tun. Zunächst Erzeuge ich die Daten-Volume Container, enthält, die das kopieren von meiner externen Verzeichnis:
In meine Anwendung ein container, wo ich meine Benutzer, die könnte in etwa so Aussehen
Dem setpermissions script übernimmt die Aufgabe, die Einstellung der Benutzer-Berechtigungen:
Jetzt muss ich nur noch die Verwendung der
--volumes-from <myDataContainerId>
wenn die Anwendung ausgeführt container.InformationsquelleAutor der Antwort Christian Metzler