У меня есть сценарий docker-compose.yml , работающий в Azure. Но когда я добавляю раздел среды с двумя переменными, это приводит к ошибке:
2018-08-24 10:29:30.214 ERROR - Exception in multi-container config parsing: System.InvalidCastException: Specified cast is not valid.
at LWAS.Kube.ComposeFileParser.ParseContainer (System.Collections.Generic.KeyValuePair`2[TKey,TValue] service) [0x00152] in <029f376c1c6a4bb79892c2f60333c2d8>:0
at LWAS.Kube.ComposeFileParser.ParseFile (System.String composeYaml) [0x000d2] in <029f376c1c6a4bb79892c2f60333c2d8>:0
at LWAS.Kube.PodSpec.LoadSpecFromComposeYamlFile (System.String composeFile) [0x00000] in <029f376c1c6a4bb79892c2f60333c2d8>:0
at LWAS.SiteStartInfoRepository.SetupPodSpecForMultiContainerApp (Microsoft.Web.Hosting.StartSiteContext ctx, LWAS.LinuxSiteStartInfo startInfo) [0x0000f] in <029f376c1c6a4bb79892c2f60333c2d8>:0
2018-08-24 10:29:30.215 ERROR - Start multi-container app failed
Сокращенное содержимое файла docker-compose.yml :
version: '3.3'
services:
application:
image: myregistry.azurecr.io/application:latest
volumes:
- application_data:/usr/local/application/data
proxy:
image: myregistry.azurecr.io/proxy:latest
depends_on:
- application
environment:
- NGINX_HOST=myapplication.azurewebsites.net
- NGINX_PORT=80
ports:
- "80:80"
volumes:
application_data:
Я пытался:
- чтобы иметь только одну переменную
- для использования кавычек вокруг значений, т.е.
NGINX_PORT="80"
- иметь полное определение переменной в кавычках, т.е.
"NGINX_PORT=80"
- чтобы переименовать переменные, используя регистр верблюдов, т.е.
nginxPort=80
- для перемещения раздела среды вверх и вниз
Ничего не помогло - все то же сообщение об ошибке.
Но в Azure должна быть возможность использовать переменные окружения с Docker compose, как показано здесь: https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/multi-container-microservice-net-applications/multi-container-applications-docker-compose
Примечание: работает локально, используя команду docker-compose
без проблем. Так что это должна быть какая-то специфическая проблема Azure.
Что я делаю не так?
Спасибо