Можем ли мы вычислить дайджест образа докера перед созданием образа для проверки реестра докеров?

Итак, у нас есть репозиторий git с несколькими образами докеров (несколько Dockerfile, каждый из которых используется для разных типов сборки приложения в нашем Jenkins)

Теперь, если кто-то внесет изменения в один Dockerfile, задание Jenkins создаст и отправит все остальные Dockerfile в репозиторий. Мне было интересно, если бы мы могли заранее вычислить идентификатор дайджеста (SHA256) и сравнить его с нашим реестром докеров, если он уже есть, мы можем пропустить docker build и docker push.

Я не смог найти ни одной команды в руководстве пользователя Docker, но в этом посте я также хотел узнать, можем ли мы поднять тикет для этой новой функции, если этот подход работает и нет ли способа вычислить это идентификатор

Любое другое предложение приветствуется


person xbmono    schedule 20.12.2018    source источник
comment
Вы не можете знать хеш, пока не подготовите контент для его вычисления (построите образ). Если ничего не изменилось, промежуточные слои будут/должны быть извлечены из кеша, и построение образа будет быстрым. Но если были изменения, вам придется перестроить затронутые слои.   -  person Sergio Tulentsev    schedule 21.12.2018
comment
Хорошо, любое другое предложение о том, как это сделать?   -  person xbmono    schedule 21.12.2018
comment
Я бы попытался решить это на уровне репозитория/дженкинса. Самое простое решение: разделить репозиторий на приложения/файлы Docker (1 файл Docker = 1 приложение = 1 git-репозиторий). В противном случае: настройте Jenkins для создания только затронутого подкаталога в вашем репозитории. Это кажется немного хакерским, но технически возможно   -  person Fabian Braun    schedule 21.12.2018
comment
@fab Спасибо. К сожалению, на данный момент разделение репо невозможно, и мы придумали что-то похожее на второй вариант, который вы упомянули. Итак, мы решили, что имя файла должно быть версией, и каждый раз, когда мы вносим изменения, разработчик должен обновлять версию... затем мы проверяем внесенные изменения в файле.   -  person xbmono    schedule 08.01.2019