ребята,
Для разных проектов создаю единые среды Docker. Каждый контейнер Docker состоит из Debian, Nginx, Node.js и т. д. И будет использоваться разработчиками, а также в производстве через Kubernetes Google Cloud. Поскольку версия Node.js / module должна быть везде одинаковой, я хотел бы (как-то) ограничить доступ к некоторым командам npm. Часто разработчики работают с разными Node.js и модулями проекта, и в прошлом это доставляло много проблем. С помощью контейнеров Docker я могу обеспечить среду всем необходимым для проекта. Чтобы завершить этот шаг, я хотел бы ограничить выполнение команды npm и разрешить только такие аргументы, как установить, контрольная работа и т. д.
Напишите мне комментарий, если знаете, как решить эту проблему :)
Ваше здоровье





Практически невозможно ограничить ваших разработчиков запуском некоторых команд в контейнере, если они имеют доступ к Dockerfiles и могут каким-то образом изменить процесс сборки.
Но поскольку контейнер обеспечивает изоляцию, и вы можете создать собственный контейнер для какого приложения на основе вашего базового образа, это может быть не большой проблемой, если версия любого пакета для одного приложения будет каким-то образом изменена, например, на этапе сборки. , потому что это не повлияет на другие приложения. Просто у них разные емкости.
Таким образом, у вас не будет проблем с совместимостью, например, когда вы используете один сервер с множеством приложений, которые используют общую среду.
Единственное, что вам нужно сделать - убедиться, что никто не меняет контейнер, который вы используете в качестве базового образа.
Привет, Антон, Спасибо. Разумеется, разработчики могут поменять файл. В этом случае нам все еще остается надеяться, что никто не будет специально манипулировать файлами Docker. В противном случае мы просто изменим права пользователей Linux на определенные двоичные файлы, чтобы, по крайней мере, заставить разработчика вводить пароль, прежде чем он даже запустит команды npm. Идея состоит в том, чтобы иметь один настраиваемый контейнер Docker со своими зависимостями проекта / приложения для каждого проекта. Если что-то не работает локально, оно не будет работать онлайн и в производственной среде. Вот почему мне нравится идея образов Docker.