Вопрос проверяет понимание механизма слоёв Docker и влияния их структуры на CI-пайплайны.
Каждый слой Dockerfile может быть закеширован отдельно. Чем больше слоёв, тем выше накладные расходы, но тем гибче кеширование. Неправильная структура слоёв приводит к частому сбросу кеша и замедлению сборки. Важнее не количество слоёв, а их логическая организация.
Слой Docker — это неизменяемый snapshot файловой системы, создаваемый каждой инструкцией Dockerfile.
Перед разбором важно понять принцип: если слой изменился, все последующие слои пересобираются.
Плюсы:
Лучшее кеширование
Меньше пересборок
Минусы:
Больше накладных расходов
Сложнее Dockerfile
Плюсы:
компактный Dockerfile
Минусы:
частый сброс кеша
медленные пересборки
Часто объединяют команды:
RUN apt-get update && apt-get install -y \
build-essential \
curl \
# очистка кеша
Это уменьшает число слоёв, но сохраняет управляемость.
Инструкции, которые меняются редко (установка зависимостей), должны идти раньше, чем копирование кода.
Количество слоёв важно, но ключевую роль играет их порядок и стабильность для кеширования.