Search code examples
.netdockerasp.net-core.net-8.0

Docker image mcr.microsoft.com/dotnet/aspnet:8.0 does not build on windows


GIVEN I use Window 11 with Docker Desktop switched to windows container

WHEN I try to build official ASP.NET Core 8 runtime image

docker pull mcr.microsoft.com/dotnet/aspnet:8.0

I get error:

no matching manifest for windows/amd64 10.0.22621 in the manifest list entries

The same happens when I try to build the image in production VM with Windows Server 2022 Standard


Solution

  • There is a breaking change in .NET 8 Docker containers - Multi-platform container tags are Linux-only:

    The .NET 8 multi-platform container tags have been updated to be Linux-only. This means that the latest, <major>.<minor>, and <major>.<minor>.<patch> tags are Linux-only going forward.
    Starting in .NET 8, the 8.0 tag will only retrieve a Linux-based image.

    So mcr.microsoft.com/dotnet/aspnet:8.0 is a Linux-based image, specifically Debian 12:

    Tags Dockerfile OS Version Last Modified
    8.0.0-bookworm-slim-amd64, 8.0-bookworm-slim-amd64, 8.0.0-bookworm-slim, 8.0-bookworm-slim, 8.0.0, 8.0, latest Dockerfile Debian 12 11/21/2023

    Try using one of the Windows-based tags:

    For example mcr.microsoft.com/dotnet/aspnet:8.0.0-windowsservercore-ltsc2022 from:

    Windows Server Core 2022 amd64 Tags

    Tag Dockerfile Last Modified
    8.0.0-windowsservercore-ltsc2022, 8.0-windowsservercore-ltsc2022 Dockerfile 11/14/2023
    7.0.14-windowsservercore-ltsc2022, 7.0-windowsservercore-ltsc2022 Dockerfile 11/14/2023
    6.0.25-windowsservercore-ltsc2022, 6.0-windowsservercore-ltsc2022 Dockerfile 11/14/2023

    See more: