Вот такая любопытная ошибка у меня возникла на изменении базового образа для моего Docker контейнера при переходе с NET Core 7.0 на NET Core 8.0:
no matching manifest for windows/amd64 10.0.17763 in the manifest list entries
В моих образах нужна компиляция проекта, использовался образ "mcr.microsoft.com/dotnet/sdk:7.0" и он отлично работал для Windows:
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS builder
Это multi-arch образ и можно использовать одно и то же имя сразу для образов Linux и Wndows: docker сам выберет подходящий вариант под текущие настройки.
Такую же multi-arch конфигурацию я ожидал от образа "mcr.microsoft.com/dotnet/sdk:8.0", который выложен на docker hub: https://hub.docker.com/r/microsoft/dotnet-sdk
И это обещает дока: "mcr.microsoft.com/dotnet/sdk:8.0 - .NET 8, with SDKs included, on Linux and Windows (multi-arch)" на странице https://learn.microsoft.com/en-us/dotnet/architecture/microservices/net-core-net-framework-containers/official-net-docker-images?source=docs
Однако, при запуске я получил ошибку "no matching manifest for windows/amd64 10.0.17763 in the manifest list entries". По описаниям эта ошибка часто возникает при использовании Linux образа когда Docker работает в режиме Windows.
Видимо образ "mcr.microsoft.com/dotnet/sdk:8.0" перестал быть multi-arch.
В исходниках этого образа на github есть отдельные описания для каждой OS (скорее всего это означает и отдельные имена): https://github.com/dotnet/dotnet-docker/tree/main/src/sdk/8.0
А в примерах использования этого контейнера на github (https://github.com/dotnet/dotnet-docker/blob/main/samples/build-in-sdk-container.md) в разделе "Windows using Windows containers" явно указывается специальный тег для windows: "docker run --rm -v ${pwd}:c:\app -w c:\app mcr.microsoft.com/dotnet/sdk:9.0-nanoserver-ltsc2022 ..."
Т.е. мне тоже нужно указать конкретный тег базового образа:
FROM mcr.microsoft.com/dotnet/sdk:8.0-nanoserver-ltsc2022 AS builder
С этим вариантом базового образа мои задачи в docker контейнерах снова заработали