Я пытаюсь создать образ Docker с помощью Visual Studio Code Analysis, который является частью Visual Studio 2017 Build Tools. Следующий Dockerfile работает, и инструменты установлены в C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Team Tools\Static Analysis Tools
:
# escape=`
FROM microsoft/dotnet-framework:4.7.1
# Restore the default Windows shell for correct batch processing below.
SHELL ["cmd", "/S", "/C"]
# Download the Build Tools bootstrapper.
ADD https://aka.ms/vs/15/release/vs_buildtools.exe C:\TEMP\vs_buildtools.exe
# Install VS Build Tools
RUN C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache `
--add Microsoft.VisualStudio.Component.Static.Analysis.Tools `
|| IF "%ERRORLEVEL%"=="3010" EXIT 0
ENTRYPOINT powershell
CMD ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]
Пока все хорошо. Однако на самом деле мне нужно основать образ на microsoft/dotnet-framework:4.7.2-sdk-windowsservercore-ltsc2016
, так как он в конечном итоге станет частью образа агента сборки TeamCity, и именно на этом образе основан . Итак, я изменил свою строку ОТ:
FROM microsoft/dotnet-framework:4.7.2-sdk-windowsservercore-ltsc2016
Когда я собираю это, образ строится, и я не иду без ошибок. Кажется, он работает и занимает примерно столько же времени. Тем не менее, каталог C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Team Tools\
отсутствует. Возможно, это какая-то проблема с 4.7.2, поэтому я попробовал microsoft/dotnet-framework:4.7.1-sdk-windowsservercore-ltsc2016
. Та же ошибка. Я тоже попробовал microsoft/dotnet-framework:4.7.2-sdk-windowsservercore-1803
тоже без удачи. Я также пытался использовать Chocolatey для установки VS Build Tools, но это точно такое же поведение.
Что в мире такого особенного в этом microsoft/dotnet-framework:4.7.1
образе, где это единственный образ, на который будут устанавливаться VS Build Tools? Я не смог найти Dockerfile для него, поэтому я не могу точно сказать, на чем он основан (они просто говорят «Windows Server Core», которая не помогает), или если этот образ устанавливается или делает что-то особенное.
Кто-нибудь заставил VS Build Tools работать в контейнере на основе чего угодно, кроме microsoft/dotnet-framework:4.7.1
?