我正在尝试使用Visual代码分析创建一个Docker映像,这是VisualStudio2017构建工具的一部分。下面的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也没有运气。我还试着用巧克力来安装VS构建工具,但这是完全相同的行为。
这个microsoft/dotnet-framework:4.7.1映像有什么特别之处,因为它是VS构建工具将要安装的唯一映像?我找不到它的Dockerfile,所以我不知道它所基于的是什么(他们只是说“”,这是没有帮助的),或者这个映像是否安装或做了什么特别的事情。
是否有人获得VS构建工具,以便在容器中工作,而不是基于microsoft/dotnet-framework:4.7.1?
发布于 2018-09-11 16:24:03
我找到了一个可行的解决方案。在微软修复导致VS构建工具安装程序无法在某些Windows映像上工作的任何错误之前,这是一种更好的解决办法。
您可以创建一个多级构建,然后复制两个Team Tools文件夹以及必要的.targets文件。如果您安装了静态代码分析之外的其他内容,您可能还需要找到需要复制的目标文件。
示例:
# escape=`
FROM microsoft/dotnet-framework:4.7.1 as vsbuild
# 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 Static Analysis Tools
RUN C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache `
--add Microsoft.VisualStudio.Component.Static.Analysis.Tools `
|| IF "%ERRORLEVEL%"=="3010" EXIT 0
FROM jetbrains/teamcity-agent:2018.1.2-windowsservercore-ltsc2016
COPY --from=vsbuild ["C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/Team Tools", "C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/Team Tools"]
COPY --from=vsbuild ["C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/MSBuild/Microsoft/VisualStudio/v15.0/CodeAnalysis", "C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/MSBuild/Microsoft/VisualStudio/v15.0/CodeAnalysis"]发布于 2018-12-17 21:23:43
VisualStudio2017版本15.9需要Windows 2019或Windows10 "RS5“。见https://aka.ms/setup/containers/servercore1809。
https://stackoverflow.com/questions/52265659
复制相似问题