Azure Docker compose在环境部分失败

Azure Docker compose在环境部分失败,azure,docker-compose,azure-web-app-service,azure-container-service,Azure,Docker Compose,Azure Web App Service,Azure Container Service,我有一个docker-compose.yml脚本在Azure中运行良好。但是,当我添加带有两个变量的en environment部分时,它会失败,并出现以下错误: 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

我有一个docker-compose.yml脚本在Azure中运行良好。但是,当我添加带有两个变量的en environment部分时,它会失败,并出现以下错误:

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
我试过:

  • 只有一个变量
  • 在值周围使用引号,即
    NGINX\u PORT=“80”
  • 在引号中包含整个变量定义,即“NGINX\u PORT=80”
  • 使用驼峰大小写重命名变量,即
    nginxPort=80
  • 上下移动环境部分的步骤
  • 没有任何帮助-仍然是相同的错误消息

    但是应该可以在Azure中使用环境变量和Docker compose,如下所示:

    注意:它使用
    docker compose
    命令在本地工作,没有任何问题。所以这一定是Azure特有的问题

    我做错了什么

    谢谢

    试试看:
    -删除
    环境
    值前面的破折号
    -将所有
    环境值的“=”更改为“:”

    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:
    
    来自Microsoft的yml示例:

    version: '3.3'
    
    services:
       db:
         image: mysql:5.7
         volumes:
           - db_data:/var/lib/mysql
         restart: always
         environment:
           MYSQL_ROOT_PASSWORD: somewordpress
           MYSQL_DATABASE: wordpress
           MYSQL_USER: wordpress
           MYSQL_PASSWORD: wordpress
    
       wordpress:
         depends_on:
           - db
         image: wordpress:latest
         ports:
           - "8000:80"
         restart: always
         environment:
           WORDPRESS_DB_HOST: db:3306
           WORDPRESS_DB_USER: wordpress
           WORDPRESS_DB_PASSWORD: wordpress
    volumes:
        db_data:
    
    资料来源:

    谢谢您的回复。它工作,但我的原始撰写文件也开始工作,没有任何编辑。从我的观点来看,当同一个compose文件开始工作时,它是Azure中的一个bug。不过,我会投票表决你的答案,感谢你抽出时间。我仍然有同样的问题,我不能使用
    -VAR=foo
    符号。我真的很抱歉。你的回答是正确的。我又试了一次,但还是不起作用。我不得不忽略az命令中的哪个compose文件或什么。。。MS只实现了变量
    VAR:value
    的映射,而不是我使用的序列one
    -VAR=value
    version: '3.3'
    
    services:
       db:
         image: mysql:5.7
         volumes:
           - db_data:/var/lib/mysql
         restart: always
         environment:
           MYSQL_ROOT_PASSWORD: somewordpress
           MYSQL_DATABASE: wordpress
           MYSQL_USER: wordpress
           MYSQL_PASSWORD: wordpress
    
       wordpress:
         depends_on:
           - db
         image: wordpress:latest
         ports:
           - "8000:80"
         restart: always
         environment:
           WORDPRESS_DB_HOST: db:3306
           WORDPRESS_DB_USER: wordpress
           WORDPRESS_DB_PASSWORD: wordpress
    volumes:
        db_data: