我看到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)的内容:
在M1上运行的容器中C:\ Program Files(x86)的内容:
用于在M1和M2上生成图像的相同命令:
docker build -t vsbuildtools -m 2GB .
我在这里想念什么?