Как динамически установить переменную ENV с помощью Dockerfile - PullRequest
0 голосов
/ 15 мая 2019

У меня есть Dockerfile, у которого есть доступ к переменной, которая указывает на среду, на которую он нацелен. Наш конвейер CICD делает эту переменную среды доступной для Dockerfile, и я могу протестировать для конкретной среды, используя «Run if $ Environment =».

Когда я обнаруживаю "тестовую" среду, мне нужно на лету создать другую переменную среды. Однако подобный код не работает:

RUN if $ Environment = "test"; затем ; / ENV NewEnvironmentVariable = "тест"; / фи

get "ENV" не найден при запуске. Очевидно, что вы не можете использовать ENV таким образом в рамках RUN .. if.

Однако я могу использовать команды bash для экспорта переменной, но он, вероятно, создает этот экспорт в другом контексте, поэтому Dockerfile не имеет к нему доступа. Я бы подумал, что его экспорт сделает новую переменную окружения в файле Docker (когда он вернется из блока if).

Короче говоря, мне просто нужно оценить существующую переменную среды, и, если она содержит искомое значение, она создаст новую переменную ENV, как если бы я выполнил "ENV MyNewVar = 1".

Возможно ли это?

Спасибо

...