пункт:
> 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
Нет, сейчас надо явно экспортировать переменные окружения в каждой пользовательской стадии. Директива docker влияет исключительно на конечный манифест.
У меня есть простой 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 ничего релеватного для своего случая тоже не нашел.
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
Обсуждают сегодня