Maven и Docker: сборка, релизы и развертывание в Kubernetes / OpenShift - PullRequest
0 голосов
/ 11 января 2019

Я борюсь с концепцией разумного тегирования / именования для моего проекта. Я определенно хотел бы использовать семантическое управление версиями, то есть пометить производственное изображение как xyz , где x - это Major , y - это minor и z - это версия patch .

В целом, у меня есть три этапа: DEV , QA и PROD . Процесс выглядит следующим образом:

  1. Фиксация передается на удаленную ветку feature / patch , которая ветвится от master
  2. верификатор сборки запущен и запускает несколько тестов
  3. A проверка кода выполняется другим разработчиком
  4. Ветка объединена в мастер
  5. Запущен конвейер сборки и образ maven и докер
  6. Образ докера развернут в DEV
  7. Образ, который безупречно работает на DEV, развернут в QA
  8. Если QA подтверждает, образ развернут в PROD .

Теперь мне нужна стратегия, как я могу добиться семантического контроля версий с помощью меток. Изначально наш Maven pom имеет версию 1.0.0-SNAPSHOT , а maven-docker-plugin заменяет ее на метку latest перед маркировкой образа Docker. То, что я хотел бы для моего первого PROD-изображения , это тег 1.0.0 . Каков номер версии QA image ? 1.0.0-RC ? Я думаю, было бы лучше, если бы я собрал образ только один раз - перед развертыванием в DEV - и впоследствии только пометил и развернул его на оставшихся двух этапах?

В целом: есть или должна быть разница в версиях между Maven и Docker изображением?

Заранее спасибо!

...