В Dockerfile я пытаюсь установить переменную ARG RUNTIME_ENVIRONMENT
в соответствии с логикой if, которую я помещаю в дочерний скрипт runtime.sh
(расположенный в той же папке, что и Dockerfile).
Мой сценарий runtime.sh
:
#!/bin/bash
aspenv="Development"
if [ "$BUILD_SOURCEBRANCHNAME" = "SP-1043" ]
then
aspenv="Test"
fi
if [ "$BUILD_SOURCEBRANCHNAME" = "Test" ]
then
aspenv="Test"
fi
Затем я попытался использовать команду source
в моем Dockerfile, как указано там: Использование инструкции RUN в Dockerfile с 'source' не работает
RUN /bin/bash -c "source runtime.sh"
перед доступом к переменной aspenv
из файла Docker:
ARG RUNTIME_ENVIRONMENT=$aspenv
ENV ASPNETCORE_ENVIRONMENT=$RUNTIME_ENVIRONMENT
В конце концов, это не работает. У меня нет ошибки сборки, но когда я проверяю образ, переменная окружения ASPNETCORE_ENVIRONMENT отсутствует:
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"ASPNETCORE_URLS=http://+:80",
"DOTNET_RUNNING_IN_CONTAINER=true",
"ASPNETCORE_VERSION=2.1.5"
]
(переменная ASPNETCORE_ENVIRONMENT присутствует, когда я устанавливаю ее непосредственно в Dockerfile без какой-либо логики if)
Я не знаю, связана ли проблема с источником, или с тем, как я пытался получить доступ к переменной aspenv
, или с чем-то еще.