Все эти приложения являются приложениями с весенней загрузкой, и они развертываются как образы Docker с использованием задачи bootBuildImage из плагина загрузки Gradle Spring.
Мы используем непрерывную доставку, поэтому каждая сборка должна создавать образы Docker для всех приложений с простой версией образа. номер сборки (который создается конвейером и уникален для каждого запуска конвейера)
Моя конфигурация оценок выглядит следующим образом:
Код: Выделить всё
tasks.named('bootBuildImage') {
imageName = "${System.getenv('BUILD_DOCKER_REGISTRY')}/${project.name}:${System.getenv('BUILD_DOCKER_TAG')}"
builder = "paketobuildpacks/builder-jammy-java-tiny"
buildpacks = [ /* ... */ ]
environment.putAll([ /* ... */ ])
}
Это болезненно для моей команды, поскольку время настройки в нашем проекте сравнительно велико, а логика сборки редко меняется.
Поэтому у меня вопрос: есть ли способ перенести конфигурацию имени изображения со времени конфигурации на время сборки, чтобы кэш конфигурации остался нетронутый? (Я пробовал провайдеров, но то, что я пробовал, не помогло, плюс я не мог толком понять документацию при описании поведения в отношении кэша конфигурации)
Вещи, которые не будут работать:
- Передача имени изображения в качестве параметра сборки: сборка создаст несколько изображений, которые различаются по имени, но должны иметь один и тот же тег.
- оптимизация или проверка структура проекта: сборка высоко оптимизирована, почти все приемы, которые можно использовать, исключены.
- любые вещи, которые займут больше времени (например, несколько сборок Gradle вместо одной, поскольку одна сборка Gradle очень параллельна)
Подробнее здесь: https://stackoverflow.com/questions/797 ... ple-images
Мобильная версия