Docker无法在Jenkins中提取指定的.NET SDK(未找到SDK错误)

时间:2019-06-13 14:20:32

标签: docker jenkins sdk asp.net-core-2.1 asp.net-core-1.0

我的解决方案托管在AWS上,并且显然它们将在7月1日停止对.NET Core 1.0的支持。

因此,我希望将.NET Core的版本从1.0升级到2.1。我能够直接部署到AWS(使用“ sls deploy ...”),但是没有问题,但是通过Jenkins这样做却遇到了问题。

我的Jenkinsfile中的getCompileDockerImage()函数返回与2.1(2.1.507-sdk)兼容的SDK版本。

它包含以下代码:

def getCompileDockerImage()
{
    return 'microsoft/dotnet:2.1.507-sdk'
}

但是,在docker运行“ docker pull microsoft / dotnet:2.1.507-sdk”命令时,我得到以下消息:“来自守护程序的错误响应:找不到microsoft / dotnet:2.1.507-sdk的清单”

我认为Jenkins无法使用指定的SDK,但是我不确定如何下载该版本。

我尝试通过SSH进入主实例和从实例,以尝试确定在这些实例上安装了什么,但是运行“ dotnet --info”不会产生任何结果。

预期结果:Jenkins能够提取指定的SDK并构建解决方案 实际结果:Jenkins无法提取指定的SDK

1 个答案:

答案 0 :(得分:0)

Microsoft对Docker映像的工作方式进行了一些更改。正式而言,它们现在都位于Microsoft自己的Azure容器注册表(mcr.microsoft.com)中。 Docker Hub清单现在都在那。对于您的实际问题,.NET Core SDK映像现在位于mcr.microsoft.com/dotnet/core/sdk,并且您为主要/次要版本设置了标签,即mcr.microsoft.com/dotnet/core/sdk:2.1。或者,特别是mcr.microsoft.com/dotnet/core/sdk:2.1.507。但是,并非所有修订版都可用,因此,如果无法使用,请使用2.1。无论如何,修订版本号实际上并不重要(也就是说,无论如何,您可能应该始终使用最新修订版)。