Dockerfile - Использование переменной из дочернего скрипта bash - PullRequest
0 голосов
/ 31 октября 2018

В 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, или с чем-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...