使用Docker自定义Visual Studio运行configuration

我正在使用Visual Studio 2017中的Docker设置.NET Core项目。我创build了该项目,并将docker-compose添加到解决scheme中,并且一切正常。

但不知何故,除了DebugRelease之外,VS将不会构build和运行Docker的任何configuration。

我已经创build了名为Preproduction的解决scheme和项目configuration并将其选中,并创build了docker-compose.vs.preproduction.yml文件。

但是,当我运行preproductionconfiguration时,项目运行,而不是select了释放 。 生成输出控制台还显示以下内容:

debugging

*docker-compose -f "docker-compose.yml" -f "docker-compose.override.yml" -f "docker-compose.vs.debug.yml" -p dockercompose3979710767* 

发布

 *docker-compose -f "docker-compose.yml" -f "docker-compose.override.yml" -f "docker-compose.vs.release.yml" -p dockercompose3979710767* 

试生产

 *docker-compose -f "docker-compose.yml" -f "docker-compose.override.yml" -f "docker-compose.vs.release.yml" -p dockercompose3979710767* 

注意第二个yml文件。 不知怎的,它使用的版本文件,而不是我已经添加的自定义configuration文件。

有没有人有任何想法如何解决这个,所以docker将使用我的自定义configuration?

不幸的是,这是不可能的。 花了很多时间弄清楚后,发现这两个文件名被硬编码成一个DLL。 所有不是'DEBUG'的将使用'RELEASE'文件。

从不同的文件夹中引用不同的docker-compose.yml文件可能是一个解决scheme,但由于它不是一个标准项目,而是一个Docker项目,所以你不能访问后期构build事件来复制需要的文件。 此外,你不能有多个Dockerfile,因为它也是基于名称约定。

您可以使用一个版本进行开发和testing,在包含的文件中进行定义,并创build一个脚本,根据您现有的撰写文件和附加内容手动创build所有内容。