Docker镜像dotnet-framework 4.7.2-sdk缺少SDK文件

时间:2018-08-01 13:56:06

标签: docker dockerfile docker-windows

我看到docker build image输出有奇怪的行为。 当我在Windows 2016服务器计算机(M1)上从我的dockerfile构建docker映像时,输出映像正常且符合预期。但是,如果我在另一台计算机(M2)上尝试执行相同的步骤,则会丢失一些关键文件。构建图像时,我看不到任何类型的错误。 M1和M2都是相同的Win2016 Datacenter OS。 M2已加入域,但M1未加入域。

我的dockerfile是这样的:

# escape=`
FROM microsoft/dotnet-framework:4.7.2-sdk
RUN mkdir c:\install
ADD WebDeploy_amd64_en-US.msi c:\install\WebDeploy_amd64_en-US.msi
WORKDIR c:\install
RUN powershell start-Process msiexec.exe -ArgumentList "/i","c:\install\WebDeploy_amd64_en-US.msi","/qn" -Wait
ADD https://aka.ms/vs/15/release/vs_buildtools.exe C:\install\vs_buildtools.exe
SHELL ["cmd", "/S", "/C"]
RUN C:\install\vs_buildtools.exe --quiet --wait --norestart --nocache `
    --installPath C:\BuildTools `
    --add Microsoft.Net.Component.4.7.1.SDK `
 || IF "%ERRORLEVEL%"=="3010" EXIT 0


RUN mkdir c:\install\sxs
ADD microsoft-windows-netfx3-ondemand-package.cab c:\install\sxs\microsoft-windows-netfx3-ondemand-package.cab
WORKDIR c:\install
RUN powershell Install-WindowsFeature -Name NET-Framework-Features -Source C:\install\sxs -Verbose
CMD ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]

在M2上运行的容器中C:\ Program Files(x86)的内容:

  • 常用文件
  • IIS
  • 互联网浏览器
  • Microsoft Visual Studio
  • Microsoft.NET
  • MSBuild
  • 参考程序集
  • Windows Defender
  • WindowsPowerShell

在M1上运行的容器中C:\ Program Files(x86)的内容:

  • 常用文件
  • IIS
  • 互联网浏览器
  • Microsoft SDK
  • Microsoft Visual Studio
  • Microsoft.NET
  • MSBuild
  • 参考程序集
  • Windows Defender
  • Windows工具包
  • WindowsPowerShell

用于在M1和M2上生成图像的相同命令:

docker build -t vsbuildtools -m 2GB .

我在这里想念什么?

0 个答案:

没有答案
相关问题