Запретить обновление npm в среде Docker

ребята,

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

Напишите мне комментарий, если знаете, как решить эту проблему :)

Ваше здоровье

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
30
1

Ответы 1

Практически невозможно ограничить ваших разработчиков запуском некоторых команд в контейнере, если они имеют доступ к Dockerfiles и могут каким-то образом изменить процесс сборки.

Но поскольку контейнер обеспечивает изоляцию, и вы можете создать собственный контейнер для какого приложения на основе вашего базового образа, это может быть не большой проблемой, если версия любого пакета для одного приложения будет каким-то образом изменена, например, на этапе сборки. , потому что это не повлияет на другие приложения. Просто у них разные емкости.

Таким образом, у вас не будет проблем с совместимостью, например, когда вы используете один сервер с множеством приложений, которые используют общую среду.

Единственное, что вам нужно сделать - убедиться, что никто не меняет контейнер, который вы используете в качестве базового образа.

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

bulletinmybeard 19.03.2018 06:42

Другие вопросы по теме