#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 удаляется из конечного контейнера