环境:
Windows 10 Enterprise
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行,第Col,7,Idx:73)-(第6行,第Col,7,Idx:73):预期为'MappingStart',得到了'SequenceStart'(第6行,第Col,7,Idx: 73)。 docker-compose C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ Sdks \ Microsoft.Docker.Sdk \ build \ Microsoft.VisualStudio.Docker.Compose.targets 294
为什么有些事情需要放在主文件中,而另一些需要在覆盖文件中?从我所看到的文档中,通常只有主要的compose文件。重写是VS2017特定的东西吗?
答案 0 :(得分:0)
那是VS中特定Docker工具版本的错误,已在15.8 Preview 3或更高版本中修复。您可以选择升级或使用此处提到的解决方法:https://github.com/Microsoft/DockerTools/issues/98