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

Docker fails to pull specified .NET SDK within Jenkins (SDK not found error)

我的解决方案托管在 AWS 上,显然他们将在 7 月 1 日之前停止对 .NET core 1.0 的支持。

因此,我希望将我的 .NET Core 版本从 1.0 升级到 2.1。我可以毫无问题地直接部署到 AWS(使用 "sls deploy ..."),但是我在通过 Jenkins 这样做时遇到了问题。

我的 Jenkinsfile 中的 getCompileDockerImage() 函数 returns 与 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" 命令,我收到以下消息:"Error response from daemon: manifest for microsoft/dotnet:2.1.507-sdk not found".

我假设指定的 SDK 不可用于 Jenkins,但我不确定如何下载该版本。

我尝试通过 SSH 连接到主实例和从实例以尝试确定这些实例上安装了什么,但是 运行 "dotnet --info" 没有结果。

预期结果:Jenkins 能够拉取指定的 SDK 并构建解决方案 实际结果:Jenkins拉取指定SDK失败

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