Я пытался создать образ докера в AzureDevOps. Однако при выпуске конвейера я получаю сообщение об ошибке ниже при создании образа докера:
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
И я собрал образ локально, он был собран без проблем. Ниже мой файл докеров:
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}#"]
Есть ли что-то, что я пропустил из-за того, что он не смог найти изображение?
Цените, если кто-нибудь может помочь. Спасибо.
Я не уверен, на какой версии ОС работает Azure... Можно ли как-то проверить?
Хорошо, проблема найдена... Задание агента в Azure DevOps должно быть изменено на Linux. Я перешел на Ubuntu16.04, тогда все работает.
Насколько я знаю, для поддержки некоторых образов контейнеров Windows требуется новая версия ОС, см. stackoverflow.com/questions/57406489/…, если возможно, лазурь использовала старые окна? Как вы сказали, это нормально, чтобы построить его в вашем районе...