Рубрики
Без рубрики

Multi Stage Docker Build

NPMRC с Docker Build

Автор оригинала: Saurabh R.

Привет всем! 👋 Я здесь с довольно краткосчитанной статьей о том, что такое многоступенчатая сборка, и как эффективно использовать его, чтобы сделать ваш Docker Build более безопасным, особенно при работе с чувствительными файлами конфигурации, такими как .NPMRC для конфигурации NPM в проекте NODEJS. Так что без дальнейшего адые мы получим прямо в это! Что такое многоступенчатая сборка? Многоступенчатые сборки – это функция, требующая докера 17.05 или выше на демон и клиента.

  • Многоступенчатые сборки полезны для всех, кто изо всех сил пытался оптимизировать DockerFiles, сохраняя их легко читать и поддерживать.
  • Это лучший способ написать ваши DockerFiles так, чтобы изображения сборки созданы в нескольких этапах, и каждый этап может использовать другое основание (например).
  • Это позволяет вам выборочно копировать артефакты с одного этапа в другое, тем самым не включающее ничего, что не требуется в последнем образе.
  • Много этапов сборки с .NPMRC У меня есть пример для вас, ребята, чтобы показать, как многоэтапная сборка может быть использована для безопасного использования файла .npmrc в вашем проекте Nodejs.

    То, что вы видите выше, объясняется ниже –
  1. Это один докер с сборками на двух этапах.
  2. Вы бы замечали несколько этикетки докеров, которые обычно добавляются в этикетки Docker. Есть проект конвенции, который можно увидеть здесь, но больше на это позже …
  3. На первом этапе изображение создается со всеми необходимыми атрибутами и обратите внимание на следующую строку кода в вышеуказанном файле –
RUN echo "Something${ARG1}" > .npmrc && \
npm install --production && \
rm -rf .npmrc

Здесь происходит то, что необходимое содержимое копируется на .npmrc во время выполнения, сразу же сопровождаемый NPM Установка и удаление .NPMRC в том же слое. Это гарантирует, что .NPMRC используется только тогда, когда NPM установка требуется и не подвергается воздействию в любом из промежуточных слоев. 😎 4. На втором этапе сборки необходимо скопировано необходимое содержание от изображения, созданного на первом этапе, и окончательное изображение создано. 5. Шаги 2,3,4 наблюдаются при выполнении следующего в вашем CI/CD Pipeline Docker Build –build-arg arg1 = <некоторое значение> –t . 6. Вы можете запустить Docker History , чтобы проверить, был ли какой-либо контент контент был выставлен в одном из промежуточных слоев в вашем шаге сборки Docker. В этом конкретном примере вы не найдете ничего подобного.

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

Дайте мне знать в комментариях, если у вас есть вопросы! 😇.