Wie füge ich beim Erstellen eines Docker-Images COPY
eine Datei in das Image ein, sodass die resultierende Datei einem anderen Benutzer als root gehört?
quelle
Wie füge ich beim Erstellen eines Docker-Images COPY
eine Datei in das Image ein, sodass die resultierende Datei einem anderen Benutzer als root gehört?
Für Versionen v17.09.0-ce und neuer
Verwenden Sie das optionale Flag --chown=<user>:<group>
mit den Befehlen ADD
oder COPY
.
Beispielsweise
COPY --chown=<user>:<group> <hostPath> <containerPath>
Die Dokumentation für das Flag --chown befindet sich jetzt auf der Hauptseite der Dockerfile-Referenz .
Ausgabe 34263 wurde zusammengeführt und ist in Version v17.09.0-ce verfügbar .
Für Versionen älter als v17.09.0-ce
Docker unterstützt keinen COPY
anderen Benutzer als root. Sie müssen chown
/ chmod
die Datei nach dem COPY
Befehl.
Beispiel Dockerfile:
from centos:6
RUN groupadd -r myuser && adduser -r -g myuser myuser
USER myuser
#Install code, configure application, etc...
USER root
COPY run-my-app.sh /usr/local/bin/run-my-app.sh
RUN chown myuser:myuser /usr/local/bin/run-my-app.sh && \
chmod 744 /usr/local/bin/run-my-app.sh
USER myuser
ENTRYPOINT ["/usr/local/bin/run-my-app.sh"]
Vor Version 17.09.0-ce lautete die Dockerfile-Referenz für den COPY
Befehl:
Alle neuen Dateien und Verzeichnisse werden mit einer UID und GID von 0 erstellt.
Verlauf Diese Funktion wurde anhand mehrerer GitHub-Probleme verfolgt: 6119 , 9943 , 13600 , 27303 , 28499 , Ausgabe 30110 .
Problem 34263 ist das Problem, das die optionale Flag-Funktionalität implementiert hat, und Problem 467 hat die Dokumentation aktualisiert.
chown
mit 40 MB Dateien).