Невозможно использовать значение переменной в команде Docker Pull в Azure конвейере Devops - PullRequest
1 голос
/ 21 июня 2020

Я создал конвейер сборки, в котором мне нужно получить изображения из частного репозитория ACR. Версия, которую нужно извлечь, хранится в файле, который я прочитал с помощью выражения регулярного выражения и команды sed Linux

- bash :
    MONGO=$(sed -n -e '/Mongo_Service_Version/ s/.*\= *//p' $(Build.SourcesDirectory)/deployment/.env | 
    sed 's/ *$//g')
    echo $MONGO

. Вышеупомянутая версия печатает правильную версию, которая присутствует в файле .env (например: 4.0) Но теперь, когда я использую ту же переменную для извлечения изображения из частного репо, я получаю сообщение об ошибке invalid reference

- bash :
    MONGO=$(sed -n -e '/Mongo_Service_Version/ s/.*\= *//p' $(Build.SourcesDirectory)/deployment/.env | 
    sed 's/ *$//g')
    echo $MONGO
    docker pull my.repo/mongo:$MONGO

Интересно отметить, что если я задаю жестко запрограммированное значение для MON GO переменная, такая как 4.0, все работает. Кроме того, команда echo записывает правильный вывод для переменной, но я не уверен, почему я не могу использовать ее с командой docker pull.

Я пробовал команду docker pull с другим синтаксисом, как указано ниже , но я получаю ту же ошибку

docker pull klingelnberg.azurecr.io/gearengine/mongo:${MONGO}
docker pull "klingelnberg.azurecr.io/gearengine/mongo:$MONGO"
MONGO_VERSION=$(sed -n -e '/Mongo_Service_Version/ s/.*\= *//p' $(Build.SourcesDirectory)/deployment/.env | sed 's/ *$//g')
MONGO="my.repo/mongo:$MONGO_VERSION"
docker pull $MONGO

Я думаю, что это значение переменной, у меня есть escape-символы или что-то, что не печатается, но используется при извлечении изображения. (Возможно, значения цветового кода или как таковые) Вышесказанное - лишь мое предположение.

...