В Azure конвейере, как использовать имя контейнера Docker в переменной для использования в задаче замены токенов? - PullRequest
0 голосов
/ 06 августа 2020

Я создал конвейер Azure DevOps, и я не могу понять, как получить и использовать имя контейнера docker, созданное в задаче docker, чтобы использовать его позже в конвейере, когда я запускаю сценарий оболочки задача по развертыванию контейнера.

1 - я создаю образ Docker. Я вижу, что имя изображения "containerapp $ (Build.BuildId)" заполнено: enter image description here

2 - I have a "Push image to Amazon ECR" task which also has the "containerapp$(Build.BuildId)" populated: enter image description here

3 - I try populating a variable in the variable group I am using to use the "containerapp$(Build.Build.id)" but that does not work later on when I try and use the variable: введите описание изображения здесь

У меня есть yaml-файл Kubernetes, заполненный переменной IMAGE_ID, которая используется в задаче замены токенов -

containers:
        - image:  #{IMAGE_ID}#
         name: app 
        volumeMounts:
        - name: app-files mountPath: /var/www/html

Я знаю, что замена токенов работает, потому что если я изменю Переменная IMAGE_ID должна быть допустимым местоположением образа контейнера, при котором мое развертывание будет работать.

Как мне заполнить переменную, чтобы использовать то, что автоматически сгенерировано как имя контейнера, созданное Azure DevOps?

Есть другой способ?

1 Ответ

0 голосов
/ 07 августа 2020

Протестируйте использование задачи Replace Token для замены значения в файле yaml K8s, переменная containerapp$(Build.BuildId) может работать должным образом.

Вот параметры задачи замены токена:

enter image description here

Variable Group:

enter image description here

Result:

enter image description here

Based on my test, docker task can't directly output image name variable, so we could create a variable to save the name. Just like you did.

To manage variables more convenient, you can improve your method.

You could direclty set the $(IMAGE_ID) variable as the Image name in Docker task and Push task.

введите описание изображения здесь

В этом случае вам нужно изменить переменные в группе переменных только один раз, и вы можете изменить переменные в имени изображения и файлах yaml одновременно.

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