Мне тоже про гит хеш подумалось… просто и не надо ничего коммитить.
Хотя, с другой стороны, если все таки хочется коммитить, то можно использовать мавен релиз плагин. Он сам умеет инкриментить версию, но выглядеть все это будет, так же, ужасно.
Версионированние может быть источником частых ошибок, на выяснение которых будет тратится много времени.
К примеру у нас в команде, сборка контейнера определена одни раз в родительском pom-e, куда заглядываешь не часто, а вот dokerfile прийдется хранить в каждом приложении. Так что файл проекта выходит не такой уж и большой.
Бонусом идет обновление сборки для всех проектов одновременно! А их много…
Более того возможность использовать maven большой плюс.
Например:
— Мы теггируем контейнер еще и ревизией гита, которая опять же легко поставляется мавеном.
— Каждый разработчик имеет свой собственный спейс в докер репозитории, так что мы не мешаем друг другу собирая и отлаживая рабочие версии, в том числе и на тест окружениях. Имя пользователя поставляется мавеном.
— Ну и может вам и ненужен контейнер локально, но очень часто для того чтоб запустить нечто, нужно поставить много разных пакетов, что не всегда хочется делать на локальной машине (мавеном ведь можно собирать не только ява приложения). И вот тогда локальный контейнер становится поистине спасением, не надо ничего качать и зависеть от подключения к сети/впн.
Проблема не совсем в этом. Проблемы начинаются когда два плагина должны исполняться в одной фазе, например: сборка контейнера и сборка jar-ников проекта. Можно столкнуться с ситуацией когда контейнер будет собираться до того как собраны jar-ники и все упадет с ошибкой. Железно работает перенос сборки контейнера в более позднюю фазу (install, deploy), но это как-то не аккуратненько.
Но скоро все исправиться и JVM можно будет заставить проверять cgoups лимиты
чем этот метод не планиг покер?
Вот уже лет двадцать как, а у кого то, все еще, обороты не набраны :-(
Он конечно не так красив и не так много чего (все еще) умеет, но зато бесплатен
Хотя, с другой стороны, если все таки хочется коммитить, то можно использовать мавен релиз плагин. Он сам умеет инкриментить версию, но выглядеть все это будет, так же, ужасно.
К примеру у нас в команде, сборка контейнера определена одни раз в родительском pom-e, куда заглядываешь не часто, а вот dokerfile прийдется хранить в каждом приложении. Так что файл проекта выходит не такой уж и большой.
Бонусом идет обновление сборки для всех проектов одновременно! А их много…
Более того возможность использовать maven большой плюс.
Например:
— Мы теггируем контейнер еще и ревизией гита, которая опять же легко поставляется мавеном.
— Каждый разработчик имеет свой собственный спейс в докер репозитории, так что мы не мешаем друг другу собирая и отлаживая рабочие версии, в том числе и на тест окружениях. Имя пользователя поставляется мавеном.
— Ну и может вам и ненужен контейнер локально, но очень часто для того чтоб запустить нечто, нужно поставить много разных пакетов, что не всегда хочется делать на локальной машине (мавеном ведь можно собирать не только ява приложения). И вот тогда локальный контейнер становится поистине спасением, не надо ничего качать и зависеть от подключения к сети/впн.