Odpowiedzi:
Dla wersji v17.09.0-ce i nowszych
Użyj opcjonalnej flagi --chown=<user>:<group>
z poleceniami ADD
lub COPY
.
Na przykład
COPY --chown=<user>:<group> <hostPath> <containerPath>
Dokumentacja dotycząca flagi --chown jest teraz dostępna na głównej stronie odniesienia do pliku Dockerfile .
Wydanie 34263 zostało scalone i jest dostępne w wersji 17.09.0-ce .
W przypadku wersji starszych niż 17.09.0-ce
Docker nie obsługuje COPY
użytkownika innego niż root. Musisz chown
/ chmod
pliku po tym COPY
poleceniu.
Przykładowy plik 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"]
Przed wersją 17.09.0-ce w dokumencie Dockerfile Reference dla COPY
polecenia było napisane:
Wszystkie nowe pliki i katalogi są tworzone z UID i GID równym 0.
Historia Ta funkcja była śledzona w wielu wydaniach GitHub: 6119 , 9943 , 13600 , 27303 , 28499 , wydanie 30110 .
Problem 34263 to problem polegający na zaimplementowaniu opcjonalnej funkcji flagi, a wydanie 467 zaktualizowało dokumentację.
chown
na 40 MB plików).