Я пытаюсь настроить процесс CI для веб-приложения в Azure. Я привык развертывать встроенный код непосредственно в веб-приложениях в Azure, но решил использовать docker на этот раз.
В конвейере сборки я создаю docker изображения и пу sh их в Azure Реестр контейнеров, помеченный последним номером сборки. В конвейере выпуска (в котором есть DEV, TEST и PROD) мне нужно развернуть эти образы в веб-приложениях каждой среды. В выпусках Azure доступны две соответствующие задачи: «Azure Служба приложения развернута» и «Azure Веб-приложение для контейнеров». Ни один из них не позволяет установить источник изображения для веб-приложения на Azure Conntainer Registry. Вместо этого они берут пользовательские имена реестра / репозитория и устанавливают источник изображения в веб-приложении как Частный реестр, который затем требует логин и пароль. Я также развертываю все ресурсы Azure с использованием шаблонов ARM, поэтому мне не нравится идея настройки учетных данных, когда 2 ресурса (реестр и веб-приложение) уже интегрированы. В идеале я бы мог настроить веб-приложение на использование репозитория и тега в Azure Registry Container, который я указал в выпуске. Я даже попытался сначала вручную настроить веб-приложения с указанными c репозиториями и тегами, а затем попытался изменить теги, используемые веб-приложениями в выпуске (с упомянутыми мною задачами), но это не сработало. Теги остаются прежними.
Другой вариант, который я рассмотрел, состоял в том, чтобы настроить все веб-приложения для указания c и постоянных репозиториев и тегов (например, «dev-latest») с самого начала (что не совсем подходит с развертываниями ARM, поскольку контейнеры должны существовать в реестре, прежде чем можно будет настраивать веб-приложения, чтобы автоматизация моей инфраструктуры была неполной), включите «Непрерывное развертывание» в веб-приложениях, а затем соответствующим образом отметьте последние отправленные репозитории в выпуске, чтобы они быть поднятым веб-приложениями. Я не смог найти приемлемый способ добавить теги в существующие репозитории в Реестре.
Каков Azure лучший метод для CI с контейнерными веб-приложениями? Как люди на самом деле строят свои контейнеры, а затем разворачивают их в каждой среде?