У меня есть сервер jenkins, который контролирует репозиторий git и создает изображение докеры при смене кода. Директория .git игнорируется как часть сборки, но я хочу связать хэш-код git с изображением, чтобы я точно знал, какая версия кода была использована для его создания, и проверьте, обновляется ли изображение.
Очевидное решение - пометить изображение чем-то вроде "имя-имя-ветки-имя-commit-hash", но для многих ветвей разработки я хочу только сохранить последнюю хорошую сборку, а добавление большего количества меток сделает очистку (вместо того, чтобы использовать номер сборки jenkins при построении образа, а затем перетащить на: последний и немаркирующий номер сборки)
Другая возможность - это метки, но в то время как это выглядело многообещающе изначально, они на практике оказались более сложными.
Единственный способ, с помощью которого я могу применить ярлык непосредственно к изображению, находится в файле Docker, который не может использовать переменные среды сборки, поэтому мне нужно будет использовать какой-то шаблон для создания пользовательского файла Docker.
Другим способом применения метки является запуск контейнера из изображения с помощью некоторой простой команды (например, bash) и передача меток в качестве аргументов запуска докеров. Затем контейнер можно передать как новое изображение. Это приводит к неудачному побочному эффекту создания команды по умолчанию для изображения, которая использовалась с контейнером для маркировки (поэтому bash в этом случае), а не тем, что было в исходном файле Docker. Для моего приложения я не могу использовать фактическую команду, так как она начнет изменять состояние приложения.
Ни один из них не кажется особенно идеальным - кто-нибудь еще нашел лучший способ сделать это?