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

我使用Visual Studio 2017(RTM)创建了一个新的.NET Core控制台应用程序.然后添加了对Docker的支持,并获得了docker文件撰写文件.但是,它们几乎没有问题.

Docker撰写文件的版本为2,这使得构建无法出现以下错误消息

Microsoft.DotNet.Docker.CommandLineClientException: client version 1.22 is too old. Minimum supported API version is 1.24,please upgrade your client to a newer version.

可以通过手动将撰写文件版本更改为2.1来解决此问题. (不确定是否有效的修复程序)然后您将收到另一个错误消息

MSB4006 There is a circular dependency in the target dependency graph involving target “DockerCleanServiceReferences”.

我不知道该如何解决.我知道错误消息是由于某些配置导致循环引用(例如,确实生成的发布后事件)引起的

那么,有什么资源或提示如何将.NET Core控制台应用程序手动打包到Docker容器中?我只是了解Docker,所以不要以为我还不了解它.

一个问题是,在哪里可以获取这些Visual Studio模板的更新版本,或者是这些已知问题?

最佳答案
事实证明,对我而言,问题是我的DockerFile,SLN文件和CSPROJ文件都放在同一文件夹中.您知道创建解决方案时会如何询问您是否要创建子目录吗?如果您不这样做,并且您的SLN和CSPROJ文件共享同一文件夹,则不可避免地会将Docker文件添加到该同一文件夹中,从而创建循环引用.如果您的SLN文件位于CSPROJ文件上方的目录中,则DockerFile等将与SLN文件一起放入您的父目录,一切都会很好.这为我解决了.

相关文章

本文将从上往下,循序渐进的介绍一系列相关.NET的概念,先从...
基于 .NET 的一个全新的、好用的 PHP SDK + Runtime: Pe...
.NET 异步工作原理介绍。
引子 .NET 6 开始初步引入 PGO。PGO 即 Profile Guided Opti...
前言 2021/4/8 .NET 6 Preview 3 发布,这个版本的改进大多来...
前言 开头防杠:.NET 的基础库、语言、运行时团队从来都是相...