Я борюсь с концепцией разумного тегирования / именования для моего проекта. Я определенно хотел бы использовать семантическое управление версиями, то есть пометить производственное изображение как xyz , где x - это Major , y - это minor и z - это версия patch .
В целом, у меня есть три этапа: DEV , QA и PROD . Процесс выглядит следующим образом:
- Фиксация передается на удаленную ветку feature / patch , которая ветвится от master
- верификатор сборки запущен и запускает несколько тестов
- A проверка кода выполняется другим разработчиком
- Ветка объединена в мастер
- Запущен конвейер сборки и образ maven и докер
- Образ докера развернут в DEV
- Образ, который безупречно работает на DEV, развернут в QA
- Если 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 изображением?
Заранее спасибо!