Podczas budowania obrazu Docker, jak mogę COPY
plik do obrazu, aby wynikowy plik był własnością użytkownika innego niż root?Jak wykonać dokowanie jako roota?
Odpowiedz
Update - Nowa flaga dodawanych do ADD i polecenia COPY
Issue 34263 zostały połączone i jest dostępny w release v17.09.0-ce.
Rozwiązaniem tego problemu jest dodanie --chown=<user>:<group>
jako opcjonalne flagi dla obu ADD
i COPY
poleceń.
Na przykład
COPY --chown=<user>:<group> <hostPath> <containerPath>
Dokumentacja dla --chown flaga jest teraz żyć na głównej Dockerfile Reference page.
Docker obecnie nie obsługuje COPY
jako użytkownik inny niż root. Musisz wykonać plik chown
/chmod
po poleceniu COPY
.
Przykład Dockerfile:
from centos:6
RUN groupadd -r slcs && 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"]
Próbowałem śledzić dyskusję przez wiele zagadnień GitHub: 6119, 9943, 13600, 27303, 28499
W czasie tego postu , Issue 30110 wydaje się być najbardziej aktualnym, który nie ma rozwiązania. Dlatego wydaje się, że nadal nie można tego zrobić przy użyciu zwykłych poleceń dokowania.
Również Dockerfile Reference na komendę COPY
nadal mówi, że
Wszystkie nowe pliki i katalogi są tworzone z UID i GID 0.
- 1. Jak wykonać nieliniowe, kompleksowe odnajdywanie roota w Pythonie
- 2. dokowanie-dokowanie i dokowanie - jak dynamicznie dodawać węzły i czy można je przetłumaczyć za pomocą usług
- 3. Dokowanie-dokowanie: definiowanie uchwytu dla wiązania wiązania i zarządzanego mocowania
- 4. dokowanie postgres pgadmin połączenie lokalne
- 5. Jak wyświetlić bash_history dla roota?
- 6. Dokowanie/Wypełnianie w WPF
- 7. Upuszczanie uprawnień roota
- 8. Jak wykonać svn commit jako inny użytkownik?
- 9. Jak zmienić hasło roota na puste?
- 10. Jak .bashrc dla roota w Dockerze
- 11. Utwórz hasło roota dla PHPMyAdmin
- 12. Zainstaluj zsh bez uprawnień roota?
- 13. Jak utworzyć dokowanie okna ".cmdtree" podczas uruchamiania w WinDbg?
- 14. Uprawnienia roota dla aplikacji iOS
- 15. Upuszczanie przywilejów roota i wciąż generowanie coredumpów
- 16. Upuszczanie uprawnień roota w Pythonie
- 17. Czy travis-ci może uruchomić dokowanie?
- 18. Dokowanie legend w obszarze wykresu w C#
- 19. Jak wykonać rozwijanie autouzupełniania jako siatkę w angularJS?
- 20. Jak wykonać Go, aby wydrukować pola enum jako ciąg?
- 21. Jak wykonać sumif używając pustych komórek jako odniesienia?
- 22. Linux nieprzetworzone dane wejściowe bez uprawnień roota?
- 23. dostęp klienta do roota w stacji dokującej
- 24. zresetować hasło roota z błędem mysql config
- 25. uruchomić dokowanie <IMAGE><WIELE KOMEND>
- 26. Windows 10 - Bash (Ubuntu) SU (hasło roota)
- 27. Czy system Android wymaga dostępu do roota?
- 28. Jak ustawić hasło roota za pomocą stany soli
- 29. Jak uzyskać adres URL roota za pomocą ASP, nie ASP.net
- 30. Jak zalogować kontener w trybie roota do kontenera
To frustating, ponieważ chown-ing wiele plików stało się niewiarygodnie powolne, ponieważ nakładka2 stała się domyślnym nośnikiem pamięci – hbogert
Tak, poza tym tworzy dużą dodatkową warstwę obrazu bez wyraźnego powodu (w moim przypadku:> 300 MB na uruchomienie 'chown' na 40 MB plików). – Dirk