Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VS2017 docker compose vs docker-compose.override?_Docker_Visual Studio 2017_Docker Compose_Docker For Windows - Fatal编程技术网

VS2017 docker compose vs docker-compose.override?

VS2017 docker compose vs docker-compose.override?,docker,visual-studio-2017,docker-compose,docker-for-windows,Docker,Visual Studio 2017,Docker Compose,Docker For Windows,环境: Windows 10企业版 Visual Studio专业版2017 Docker CE 18.03.1-CE-win65(17513) 当我创建解决方案并添加Docker支持时,VS2017将创建Docker compose项目并添加Docker-compose.yml和Docker-compose.override.yml。这两个文件之间有区别吗?我问这个问题的原因是我试图在每个容器的基础上设置一个环境变量 如果我在docker compose中执行此操作,将.yml文件覆盖为: s

环境:

Windows 10企业版
Visual Studio专业版2017
Docker CE 18.03.1-CE-win65(17513)

当我创建解决方案并添加Docker支持时,VS2017将创建Docker compose项目并添加Docker-compose.yml和Docker-compose.override.yml。这两个文件之间有区别吗?我问这个问题的原因是我试图在每个容器的基础上设置一个环境变量

如果我在docker compose中执行此操作,.yml文件覆盖为:

services:
  webapplication1:
    environment:
      - TEST=HELLO1
    ports:
      - "80"
它按照预期构建和工作

如果我在docker-compose.yml中按以下方式执行此操作:

services:
  webapplication1:
    image: compositeapp
    environment:
      - TEST=HELLO1
    build:
      context: .\WebApplication1
      dockerfile: Dockerfile
现在它不再生成,并给我一个错误:

严重性代码说明项目文件行抑制状态 错误(第6行,第7列,Idx:73)-(第6行,第7列,Idx:73):预期为“MappingStart”,但获得了“SequenceStart”(第6行,第7列,Idx:73)。docker compose C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdk\Microsoft.docker.Sdk\build\Microsoft.VisualStudio.docker.compose.294


为什么有些东西需要放在主文件中,有些东西需要放在重写中?从我看到的文档中,通常只有主撰写文件。覆盖是VS2017特有的吗?

这是VS中Docker工具特定版本中的一个bug,在15.8 preview 3或更高版本中已修复。您可以选择升级或使用此处提到的解决方法: