将.NET Core控制台应用程序构build到Docker中

我用Visual Studio 2017(RTM)创build了一个新的.NET Core控制台应用程序。 然后添加Docker支持,并得到了docker文件+撰写文件就好了。 但是他们很less有问题。

Docker撰写文件有版本2,这使得构build失败,以下错误消息

Microsoft.DotNet.Docker.CommandLineClientException:客户端版本1.22太旧。 支持的最低API版本是1.24,请将您的客户升级到新版本。

这可以通过手动将撰写文件版本更改为2.1来解决。 (不知道如果有效的修复)那么你会得到另一个错误信息

MSB4006涉及目标“DockerCleanServiceReferences”的目标依赖关系图中存在循环依赖关系。

这我不知道如何解决。 我知道错误信息是由于一些导致循环引用的configuration(例如,构build后的构build事件)

那么,如何将.NET Core控制台应用程序手动打包到Docker容器中的任何资源或技巧? 我只是想知道Docker,所以不要以为我知道它的一切。

另一个问题,那里有一些地方,我可以得到这些Visual Studio模板的更新版本或这些已知的问题?

事实certificate,我的问题是我的DockerFile,SLN文件和CSPROJ文件都在同一个文件夹中。 你知道如何创build一个解决scheme,它会问你是否要创build一个子目录? 如果你不这样做 ,并且你的SLN和CSPROJ文件共享同一个文件夹,Docker文件将不可避免地被添加到这个文件夹中,创build循环引用。 如果你的SLN文件位于你的CSPROJ文件的目录中,那么Doc​​kerFile等将被放到你的父目录和SLN文件中,一切都会好的。 这为我解决了。

你可以请检查你的Docker for Windows是否是针对Linux的? 这很可能是针对Windows容器,而.NET Core尚不支持。

关于如何手动将.NET Core控制台应用程序打包到Docker镜像的问题。 https://github.com/dotnet/dotnet-docker-samples是为了回答这个问题。 去看一下。 如果遇到问题或有任何build议,请login问题( https://github.com/dotnet/dotnet-docker-samples/issues )。

在我的第一个VS2017与泊坞窗的旋转,使用默认模板,我遇到了同样的问题。 我提到这篇文章 – https://blogs.msdn.microsoft.com/containerstuff/2017/03/13/visual-studio-2017-client-version-1-22-is-too-old/这是什么工作对我来说 – 正如所推荐的,在docker-compose项目的docker-compose.ci.build.yml中做了以下更改:设置为2的文件顶部的“version”参数已更改为2.1重复上述相同的更改项目中的其他文件包括:

泊坞窗,compose.yml

泊坞窗,compose.override.yml

泊坞窗,compose.vs.debug.yml

泊坞窗,compose.vs.release.yml

感谢您的post。 我们将很快添加Nano Server容器工具。 在此之前,您可以使用Linux容器来提供类似的体验。