Прежде чем упоминать какие-либо рекомендации по кэшированию вашего базового образа, есть несколько рекомендаций по оптимизации производительности вашей сборки . Поскольку вы уже используете Kaniko и кэшируете образ из своего репозитория, я считаю, что ваша реализация соответствует приведенным выше рекомендациям.
Единственное, что я хотел бы сделать, это использовать Google Cloud Storage для повторного использования результатов ваших предыдущих сборок. Если сборка занимает много времени, а количество создаваемых файлов невелико, и копирование их из и в Cloud Storage не займет много времени, это ускорит процесс больше вашей сборки.
Более того, есть некоторые рекомендации, которые изложены в следующей статье относительно Оптимизация вашего кеша сборки . Я считаю, что наиболее важным из них является:
"расположение шагов сборки, которые часто меняются, в нижней части Dockerfile. Если вы поместите их сверху, Docker не сможет использовать свой кеш сборки для других этапы сборки, которые меняются реже. Поскольку для каждой новой версии исходного кода обычно создается новый Docker образ, добавьте исходный код к изображению как можно позже в Dockerfile ".
Наконец еще одну вещь, которую я бы принял во внимание, это срок действия кэша .
Пожалуйста, имейте в виду, что он должен быть настроен соответствующим образом, чтобы не потерять обновления для зависимостей, но не запускать сборки без использования.
Больше ссылок, которые вы можете счесть полезными (не учитывая, что это не источники Google):
Docker документация о многоэтапных сборках
Использование многоэтапных сборок для упрощения и стандартизации процессов сборки