在Docker中,对于dotnet/aspnet:3.1的清单列表条目中,缺少Windows/amd64 10.0.14393的匹配清单。

3

我试图在AzureDevOps中构建Docker镜像。 然而,在发布管道上构建Docker镜像时,我收到了以下错误信息:

Step 1/30 : FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
3.1: Pulling from dotnet/aspnet
no matching manifest for windows/amd64 10.0.14393 in the manifest list entries

我已经在 Docker Hub 上检查过了,mcr.microsoft.com/dotnet/aspnet:3.1 是最新可用的镜像。

参考资料:https://hub.docker.com/_/microsoft-dotnet-aspnet

而且我已经在本地构建了这个镜像,构建成功并且没有任何问题。以下是我的 Dockerfile:

FROM mcr.microsoft.com/dotnet/aspnet:3.1 AS base
WORKDIR /app
EXPOSE 80

ENV ASPNETCORE_ENVIRONMENT #{environment-profile}#

FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY ["Api/Api.csproj", "Api/"]
RUN dotnet restore "Api/Api.csproj"
COPY . .
WORKDIR "/src/Api"
RUN dotnet build "Api.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Api.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "Api.dll", "--environment=#{environment-profile}#"]

是否有我遗漏的任何内容导致它找不到图像?

如果有人能帮忙,将不胜感激。谢谢。


据我所知,一些 Windows 容器镜像需要新的操作系统版本才能支持,请参见 https://stackoverflow.com/questions/57406489/no-matching-manifest-for-unknown-in-the-manifest-list-entries-when-pull-nanose。如果可能的话,Azure 是否使用了旧版的 Windows?正如你所说,在本地构建它是可以的... - atline
我不确定Azure正在运行哪个操作系统版本...有没有办法检查? - Sivvie Lim
1个回答

3

好的,我找到了问题所在...Azure DevOps中的代理作业应该更改为Linux。我将其更改为Ubuntu16.04,然后它就可以运行了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接