Мне было бы интересно узнать, почему в контейнерах следует избегать sudo
.
Исторически мы использовали docker
для автоматизации процессов сборки, тестирования и развертывания в нашей команде и всегда старались написать Dockerfiles
как можно ближе к исходному процессу.
Допустим, если вы создаете в своем хосте какое-то приложение и запускаете некоторые команды с sudo
, некоторые без, нам удалось создать точно такой же Dockerfiles
. Положительная обратная связь с этим заключается в том, что вы больше не обязаны писать readme's
о том, как создавать код - вы просто указываете Dockerfile
, и когда кто-то хочет повторить все шаги в неконтейнерной среде, он просто следует (copy / Вставить) команды из файла.
Итак, мое предложение - сначала установите пакеты в Dockerfile, затем переключитесь на пользователя и выполните все остальные шаги, используя sudo
при необходимости. У вас будут все артефакты, принадлежащие пользователю, а не root
.
UPD
Получил оригинальную дискуссию и эту одну. Похоже, вы выбираете лучший подход в зависимости от вашего конкретного случая и потребностей.