gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 18:13:33 27 4
gpt4 key购买 nike

我使用 Visual Studio 2017 (RTM) 创建了一个新的 .NET Core 控制台应用程序。然后添加了Docker支持并得到了docker文件+compose文件就好了。然而,它们几乎没有问题。

Docker compose 文件的版本为 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.

可以通过手动将 compose 文件版本更改为 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 文件一起放入您的父目录中,一切都会好起来的。这为我解决了这个问题。

关于docker - 将 .NET Core 控制台应用程序构建到 Docker 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42714010/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com