Azure — развертывание виртуального приложения перезаписывает корневое приложение

#azure #azure-devops #azure-pipelines #azure-appservice

#azure #azure-devops #azure-конвейеры #azure-appservice

Вопрос:

Я пытаюсь создать Azure deployment из трех приложений (App Service с виртуальными приложениями). Структура должна быть следующей:

 /app-1
/app-2
/
  

Где 3-е приложение содержится в корневом каталоге, содержащем некоторые статические файлы (index.html , Web.config).

Для этой цели я создал 2 конвейера выпуска:

  1. Развертывание приложения-1 и статических файлов в root
  2. Развертывание приложения-2

Когда я запускаю конвейер app-2, а затем конвейер app-1 и tatic files, все работает так, как ожидалось. Однако, когда конвейер app-2 запускается последним, корневое (3-е приложение) очищается, даже если оно настроено для развертывания только в соответствующем виртуальном приложении.

Есть идеи?

РЕДАКТИРОВАТЬ: найден обходной путь. Ко всем задачам службы приложений развертывания Azure были добавлены дополнительные параметры развертывания — веб-развертывание, сохранение файлов.

Была выполнена та же команда, что и раньше, однако, похоже, она имеет эффект.

Комментарии:

1. По умолчанию развертывание выполняется с корневым приложением в веб-приложении Azure. Если вы хотите выполнить развертывание в определенном виртуальном приложении, введите его имя в свойстве виртуального приложения задачи развертывания службы приложений Azure. Обратите внимание, что каждое приложение имеет корневой путь по умолчанию (/), сопоставленный с D:homesitewwwroot , где ваш код развернут по умолчанию. Если корневой каталог вашего приложения находится в другой папке или если в вашем репозитории имеется более одного приложения, вы можете редактировать или добавлять виртуальные приложения и каталоги.

2. Да, я использую виртуальные приложения, как указано выше. И конвейеры выпуска имеют конфигурацию виртуального приложения.

Ответ №1:

Обходной путь

Измените версию задачи на 3. (Есть 1 важное изменение между 3<->4 — packageForLinux для версии 3 не является псевдонимом для пакета, как в версии 4)

введите json (из readme неясно, какие имена входных данных): https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/AzureRmWebAppDeploymentV3/task.json

readme: https://github.com/microsoft/azure-pipelines-tasks/blob/master/Tasks/AzureRmWebAppDeploymentV3/README.md

Дополнительная информация в этом выпуске github:https://github.com/microsoft/azure-pipelines-tasks/issues/13946


У меня также была такая же проблема в последние дни, и я, наконец, нашел обходной путь. Нежелательный, но, по крайней мере, он работает.


Для меня обходной путь с веб-развертыванием не работал должным образом, поскольку мое приложение переписывало root с файлами приложений из старого развертывания. (O_o)

Эта проблема очень похожа на мою проблему, поэтому я оставил здесь другой обходной путь.