docker аннулирование кеша сборки на последующих слоях, даже если они только добавляют файлы - PullRequest
0 голосов
/ 05 августа 2020

Я знаю о КОПИРОВАНИИ и ДОБАВЛЕНИЕ аннулирует кеш, если файлы изменены. Однако мне интересно, почему все последующие слои будут восстановлены, даже если содержимое не изменилось. Допустим, у меня есть две инструкции КОПИРОВАНИЯ, для первой файлы изменились, и кеш аннулирует принудительное восстановление второй КОПИИ. Вторая КОПИЯ приводит к тому же dir ha sh, но получает новый идентификатор слоя -> при нажатии изображения загружаются оба слоя. Есть ли способ сохранить только pu sh слои, которые действительно изменились (по содержанию)? Мой вариант использования: каждая КОПИЯ просто добавляет файлы, не удаляя и не изменяя их (даже для метаданных).

1 Ответ

0 голосов
/ 05 августа 2020

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

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

Чтобы минимизировать это, сначала разместите команды, которые с меньшей вероятностью изменят слои.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...