#azure #docker #docker-compose #azure-web-app-service #azure-appservice
#azure #docker #docker-compose #azure-web-app-service #azure-appservice
Вопрос:
У меня есть файл docker-compose.yml, который создается на этапе сборки в Azure Devops. Этап сборки работает хорошо, и я вижу, как создается файл docker-compose.yml. Для меня это имеет смысл.
Однако для запуска одной из служб требуется обычный образ docker, а другая служба — это та, которую я создал и размещаю в своем реестре контейнеров Azure.
Файл docker compose выглядит следующим образом:
networks:
my-network:
external: true
name: my-network
services:
clamav:
image: mkodockx/docker-clamav@sha256:b90929eebf08b6c3c0e2104f3f6d558549612611f0be82c2c9b107f01c62a759
networks:
my-network: {}
ports:
- published: 3310
target: 3310
super-duper-service:
build:
context: .
dockerfile: super-duper-service/Dockerfile
image: xxxxxx.azurecr.io/superduperservice@sha256:ec3dd010ea02025c23b336dc7abeee17725a3b219e303d73768c2145de710432
networks:
my-network: {}
ports:
- published: 80
target: 80
- published: 443
target: 443
version: '3.4'
Когда я помещаю это в службу приложений Azure с помощью вкладки Docker Compose, мне нужно выбрать вкладку image — либо Azure Container Registry, либо Docker Hub — я предполагаю первое, потому что я подключен к нему.
Когда я запускаю службу, в моих журналах говорится:
2020-12-04T14:11:38.175Z ERROR - Start multi-container app failed
2020-12-04T14:23:28.531Z INFO - Starting multi-container app..
2020-12-04T14:23:28.531Z ERROR - Exception in multi-container config parsing: Exception: System.NullReferenceException, Msg: Object reference not set to an instance of an object.
2020-12-04T14:23:28.532Z ERROR - Start multi-container app failed
2020-12-04T14:23:28.534Z INFO - Stopping site ingeniuus-antivirus because it failed during startup.
Это не очень полезно, и я не думаю, что с этим файлом docker-compose.yml что-то не так.
Если я попытаюсь развернуть ТОЛЬКО службу из реестра контейнеров Azure, она будет развернута, но не будет развернута другая служба.
Кто-нибудь знает, почему служба не запускается?
Ответ №1:
Что ж, есть две проблемы, которые я нахожу в вашем файле docker-compose для веб-приложения Azure.
Одна из проблем заключается в том, что Azure Web App поддерживает настройку только одного хранилища изображений в файле docker-compose. Это означает, что вы можете настроить только Docker Hub или ACR, а не оба.
Другая проблема заключается в том, что Azure Web App не поддерживает опцию сборки в файле docker-compose. Смотрите подробности здесь.
В соответствии со всем вышесказанным, я предлагаю вам создать все свои пользовательские изображения и отправить их в ACR и использовать только ACR.
Комментарии:
1. В конечном итоге я скопировал репозиторий docker hub в ACR, поскольку решил, что не смогу выполнить развертывание с обоими. В конечном счете, похоже, что служба приложений Azure на самом деле не может поддерживать немного сложный файл docker-compose.yml, поэтому я сбросил его и нашел способ использования экземпляров контейнеров Azure и развертывания через командную строку (потому что нет пользовательского интерфейса для выполнения docker-compose. yml здесь тоже). Я не слишком впечатлен тем, как Azure управляет многоконтейнерными материалами. Спасибо, что нашли время ответить.