Привет всем! 👋 Я здесь с довольно краткосчитанной статьей о том, что такое многоступенчатая сборка, и как эффективно использовать его, чтобы сделать ваш Docker Build более безопасным, особенно при работе с чувствительными файлами конфигурации, такими как .NPMRC для конфигурации NPM в проекте NODEJS. Так что без дальнейшего адые мы получим прямо в это! Что такое многоступенчатая сборка? Многоступенчатые сборки – это функция, требующая докера 17.05 или выше на демон и клиента.
- Многоступенчатые сборки полезны для всех, кто изо всех сил пытался оптимизировать DockerFiles, сохраняя их легко читать и поддерживать.
- Это лучший способ написать ваши DockerFiles так, чтобы изображения сборки созданы в нескольких этапах, и каждый этап может использовать другое основание (например).
- Это позволяет вам выборочно копировать артефакты с одного этапа в другое, тем самым не включающее ничего, что не требуется в последнем образе.
Много этапов сборки с .NPMRC У меня есть пример для вас, ребята, чтобы показать, как многоэтапная сборка может быть использована для безопасного использования файла .npmrc в вашем проекте Nodejs.
То, что вы видите выше, объясняется ниже –
- Это один докер с сборками на двух этапах.
- Вы бы замечали несколько этикетки докеров, которые обычно добавляются в этикетки Docker. Есть проект конвенции, который можно увидеть здесь, но больше на это позже …
- На первом этапе изображение создается со всеми необходимыми атрибутами и обратите внимание на следующую строку кода в вышеуказанном файле –
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
Это всего лишь один из способов использования многоступенчатой сборки и может быть очень эффективным в управлении DockerFiles, даже если вы не работаете с каким-либо конфиденциальным контентом.
Дайте мне знать в комментариях, если у вас есть вопросы! 😇.