В английской версии документации к докер инструкциям я увидел этот

пункт:

> Tip: you can also export environment variables right to the user stage instructions.

В русской версии это выглядит так:

> Если вам требуются определённые переменные окружения во время сборки (например, TERM), то вам необходимо ..., или экспортировать их в пользовательской стадии.

Я пытаюсь с этим как-то поэкспериментировать, определив переменную в user stage вместо docker stage, чтобы попытаться использовать её внутри скрипта, но у меня ничего не выходит и я не совсем понимаю в таком случае как этот пункт в документации интерпретировать.

Можно ли прописать какую-то дефолтную переменную, а потом, допустим, прописать условие в user stage, которое в случае чего, переопределит переменную, чтобы таким образом все прописывавалось через staple? Либо просто экпортировать переменную из user stage в контейнер, если она не определена в docker stage как в моем случае?

docker:
# ENV:
# MESSAGE: "Hello!"
CMD: ["/bin/sh", "/app/message_generator.sh"]
shell:
beforeInstall:
- export MESSAGE="Hello!"

Сам скрипт:

while true; do
echo "$MESSAGE"
sleep 5
done

3 ответов

3 просмотра

Нет, сейчас надо явно экспортировать переменные окружения в каждой пользовательской стадии. Директива docker влияет исключительно на конечный манифест.

Alex- Автор вопроса

У меня есть простой pipeline, где использование converge вписывалось бы идеально, но есть один момент, который я все еще не понимаю как решить. Build docs: stage: build script: - MKDOCS_MATERIAL_VERSION=$(grep 'mkdocs-material==' requirements.txt | sed 's/mkdocs-material==//') - docker build --build-arg mkdocs_material_version=$MKDOCS_MATERIAL_VERSION -t my-docs-image . В данном случае используется команда 'docker build' с динамически определенным аргументом DOCKER_BUILD_ARGS. И пытаясь воспроизвести нечто подобные с werf, я так и не понял, как я бы мог динамически определять переменные, которые бы передавалсиь для build time верфи. Можно ли это как-то реализовать? Самым простым вариантом было бы просто передать выведенный аргумент через флаг во время исполнения 'werf converge', но я такого флага не нашел. Передавать перменные в staple между user и build stage я не могу. В примерх с gitlab ci ничего релеватного для своего случая тоже не нашел.

Alex
У меня есть простой pipeline, где использование co...

args https://werf.io/docs/v2/reference/werf_yaml.html#L40 + env https://werf.io/docs/v2/reference/werf_yaml_template_engine.html#environment-variables

Похожие вопросы

Обсуждают сегодня

Здрасьти! Делаю Buildah+Docker-multistage. В первом имадже делаю COPY кода. Из них генерю файлы: 31229b03ef2ed26c5e02d0e8320f8a04 ./package.json a0b92a158d0bed9570350af0ed3e...
Vyacheslav
3
Всем привет, подскажите , можно ли управлять порядком выкатки зависимых чартов? Например как заставить сначала развернуть elasticsearch а заним kibana
Juriy K
2
Вопросик не совсем werf. Но вдруг мы подскажите воркэраунд или ещё что-нибудь. Могу ли я как-нибудь в моменте деплоя внутри heml рендера получить хэшсумму файла шаблона (./tem...
Alex Подрябинкин
11
Всем привет. Werf v2.10.5 При удалении релиза вместе с неймспейсом (werf dismiss --namespace namespace_name) Сыпятся ошибки ┌ Waiting for resources elimination: namespaces/rel...
Vitalik Petrov
1
Друзья, добрый день. Прошу подсказать с базовым вопросом по использованию CI переменных gitlab в werf.yaml. Хочу в beforeInstall использовать env переменную с токеном. Мне нуж...
Anton Zol
10
Всем привет. Сегодня добавили в приложение дополнительный образ nginx, в который докидывается системная статика прям в образ. При деплое бандлами деплоилось 200+ джоб(клиентов...
Владимир Муковоз
6
всем привет) подскажите, судя по поиску, пару лет назад возникал вопрос насчет преобразования секретов при шифровании к строковому типу. Что-то за это время менялось? Сейчас ...
Denis Yudin
9
Добрый день, после перехода с версии 1.2 на 2.10 werf cleanup начал удалять использующиеся теги, и до и после обновления использовались дефолтные политики keepPolicies Подскаж...
Дмитрий
29
Вопрос. Имеем большие репозитории и медленные скорости. Из-за чего очень долго длятся пайплайны. Azure DevOps, PR пайплан, выкачиваем только эфимерный(виртуальный) комит, и з...
Alex Подрябинкин
11
Блин а мне как поумнеть ?
Toxin
191
Карта сайта