MODULE_VERSION := $(shell git describe --tags)
При сборке образа с помощью werf, эта переменная просто игнорируется и в образ передается пустая строка
Если же использовать в werf.yaml
args: { MODULE_VERSION: {{ env "MODULE_VERSION" }} }
То все работает, но идет ругань на то, что использование env не соответствует идее гитерминизма.
Собственно, вопросы:
1. Нормально ли, что переменная игнорируется, если нет соответствующей строчки в werf.yaml?
2. Как проще всего передать в образ имя тэга? Может, есть какая-то сервисная переменная?
Версия верфа 2.6.0
1. Да, у вас же с чистым Docker она тоже не подхватится. 2. Вы всё делаете правильно для использования переменной окружения при сборке. Есть другой момент, нужно ли это на самом деле. В werf есть сервисные переменные для коммита, например.
Мы рекомендуем доверить жизненный цикл всех артефактов werf и не думать про то, что и как хранится в container registry. С werf пользователь не пересекается с конечными тегами, а на всех шагах оперирует их имена из werf.yaml. При отладке вся необходимая информация есть в лейблах контейнеров, а также в лейблах выкатываемых в K8s ресурсов. Давайте рассмотрим зачем и на каких стадиях вам требуются человекочитаемые теги и мы предложим оптимальное решение.
Обсуждают сегодня