Сборка Docker отличается между конвейерами docker desktop и Azure

#docker #azure-devops #dockerfile

Вопрос:

У меня есть простой файл dockerfile, который я пытаюсь вставить vc_redist в контейнер, когда я создаю изображение с помощью рабочего стола docker, мое приложение работает правильно, однако, когда я создаю одно и то же изображение в конвейере Azure и извлекаю это изображение из реестра контейнеров Azure, мне не хватает слоев vc_redist. В чем разница между созданием образа с помощью docker desktop и задачами конвейера Azure? Вот образец моего файла dockerfile

 FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019 AS base
WORKDIR /app

USER ContainerAdministrator
ADD https://download.visualstudio.microsoft.com/download/pr/9fbed7c7-7012-4cc0-a0a3-a541f51981b5/e7eec15278b4473e26d7e32cef53a34c/vc_redist.x64.exe /vc_redist.x64.exe 
RUN /vc_redist.x64.exe /norestart /install /quiet
RUN del /vc_redist.x64.exe

FROM mcr.microsoft.com/dotnet/framework/sdk:4.8 AS build
WORKDIR /src
RUN dotnet restore .....
COPY . .
RUN dotnet build ....

FROM build AS publish
RUN dotnet publish ...

FROM base AS runtime
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["myapp.exe"]
 

Комментарии:

1. Используете ли вы агенты Windows или linux? Вы уверены, что все

2. контейнер для windows

3. но ваши агенты devops, они тоже windows?

Ответ №1:

ваш URL — адрес здесь не работает. (вероятно, это частный URL-адрес только для вашего IP-адреса или в зависимости от времени)

видишь https://github.com/microsoft/dotnet-framework-docker/issues/15

он использует ссылку для загрузки Microsoft, которая работает

https://download.microsoft.com при использовании ссылки visual studio https://download.visualstudio.microsoft.com/

Я бы предложил загрузить установщик и повторно загрузить его в gist или GitHub, или просто добавить сам файл в докер

Комментарии:

1. Ссылка на vc_redist в порядке, скопируйте ее в любой браузер, и она загрузится, кроме того, как я написал, она отлично строится и работает при сборке с помощью рабочего стола docker. проблема в том, что при использовании конвейера docker задача заключается в том, что vc_redist удаляется из конечного контейнера