Как убедиться, что переменная группы задач обновлена и доступна в задачах, не связанных с сценариями?
В группе задач после установки переменной CONTAINER_PORT
в сценарии она доступна в последующих задачах сценария,но при доступе к нему через $(CONTAINER_PORT)
возвращается исходное значение переменной группы задач.
например. После создания сборки с использованием группы задач мне нужно установить CONTAINER_PORT
на 81
, поскольку все задачигрупповые переменные требуются по умолчанию.
Задача 1 - Настроить сценарий (Bash)
containerPort=8080
if [ $(framework) == 'dotnet' ]; then containerPort=80; fi;
echo "##vso[task.setvariable variable=CONTAINER_PORT]$containerPort";
Задача 2 - Создает Dockerfile (File Creator)
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE $(CONTAINER_PORT)
...
Задача 2(Вывод) - я ожидаю EXPOSE 8080
здесь
FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 81
...
Задача 3 - Сценарий коммита (Bash)
echo "Port should be set to: $CONTAINER_PORT"
Задача 3 (Вывод)
Port should be set to: 8080
tldr;Правильное значение $CONTAINER_PORT
доступно в будущих задачах сценария, но не в задаче File Creator
, которая ожидает содержимое файла.
Пример создателя файла: