2 / 15
Как устроены образы Docker: слои, кеш сборки и многоэтапная сборка?
Образ — это стопка слоёв только для чтения: почти каждая инструкция Dockerfile добавляет слой, а контейнер работает поверх них в тонком записываемом слое. Слои кешируются и переиспользуются: если инструкция и её входные данные не изменились, при пересборке берётся кеш. Отсюда главное правило — сначала копировать файлы зависимостей и ставить их, потом копировать исходники, иначе любое изменение кода сбрасывает кеш установки. Многоэтапная сборка (multi-stage) позволяет собирать в одном образе с полным набором инструментов, а в финальный переносить только артефакты — так образ уменьшается в разы и не содержит компилятора и исходников.