vs-dockerfiles
vs-dockerfiles copied to clipboard
Cannot start the image.
PS D:\docker\vs-dockerfiles\native-desktop> docker build -t buildtools2017native:latest -m 2GB .
Sending build context to Docker daemon 6.656kB
Step 1/13 : ARG FROM_IMAGE=microsoft/dotnet-framework:3.5-sdk-windowsservercore-1709
Step 2/13 : FROM ${FROM_IMAGE}
3.5-sdk-windowsservercore-1709: Pulling from microsoft/dotnet-framework
5847a47b8593: Pull complete 8c7d1531260f: Pull complete 3d0254bb127e: Pull complete 4f902bd6d87a: Pull complete 4aa699cf7f9f: Pull complete 2eab72890514: Pull complete 56b9a53331d1: Pull complete 25c047980059: Pull complete 404d064ea44c: Pull complete c60243f9ef41: Pull complete d848f2c6a627: Pull complete 5d78922a0285: Pull complete 518d50fe5992: Pull complete a1f410abaaf5: Pull complete 8648ea257b16: Pull complete 356bcd7c7e51: Pull complete f3b91b31fc74: Pull complete b66db876cc88: Pull complete 544e714e9e3f: Pull complete Digest: sha256:02b78aeca72c06c5537fd860964488c7a4d2e9541f30a2aa3b087cdce1d72aa2
Status: Downloaded newer image for microsoft/dotnet-framework:3.5-sdk-windowsservercore-1709
---> 9b230679c80b
Step 3/13 : SHELL ["cmd", "/S", "/C"]
---> Running in edfec454c5f0
Removing intermediate container edfec454c5f0
---> 3da2d0498a45
Step 4/13 : COPY Install.cmd C:\TEMP
---> 43976cc78479
Step 5/13 : ADD https://aka.ms/vscollect.exe C:\TEMP\collect.exe
Downloading [==================================================>] 261.4kB/261.4kB
---> 45ed3c8825e0
Step 6/13 : ADD https://nodejs.org/dist/v8.11.3/node-v8.11.3-x64.msi C:\TEMP\node-install.msi
Downloading [==================================================>] 16.66MB/16.66MB
---> 52cb53698fc7 Step 7/13 : RUN start /wait msiexec.exe /i C:\TEMP\node-install.msi /l*vx "%TEMP%\MSI-node-install.log" /qn ADDLOCAL=ALL ---> Running in 2455d8a27a37 Removing intermediate container 2455d8a27a37 ---> c8572a5b57f7 Step 8/13 : ARG CHANNEL_URL=https://aka.ms/vs/15/release/channel ---> Running in dd46ee660c2a Removing intermediate container dd46ee660c2a ---> f8bbf4d0768f Step 9/13 : ADD ${CHANNEL_URL} C:\TEMP\VisualStudio.chman Downloading [==================================================>] 71.46kB/71.46kB
---> 9e56c3a8ac4d Step 10/13 : ADD https://aka.ms/vs/15/release/vs_buildtools.exe C:\TEMP\vs_buildtools.exe Downloading [==================================================>] 1.262MB/1.262MB
---> 2eead12e5c47 Step 11/13 : RUN C:\TEMP\Install.cmd C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache --channelUri C:\TEMP\VisualStudio.chman --installChannelUri C:\TEMP\VisualStudio.chman --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --installPath C:\BuildTools ---> Running in 6cbc44f9334a Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\1028\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\2052\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\1055\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\1046\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\1042\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\1029\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\1036\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\3082\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\1040\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\1031\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\1045\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\1041\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\1049\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\HelpFile\1033\help.html... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\vs_setup_bootstrapper.exe... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\Microsoft.Diagnostics.Tracing.EventSource.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\Microsoft.VisualStudio.RemoteControl.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\Microsoft.VisualStudio.Setup.Common.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\Microsoft.VisualStudio.Setup.Configuration.Interop.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\Microsoft.VisualStudio.Setup.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\Microsoft.VisualStudio.Setup.Download.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\Microsoft.VisualStudio.Setup.Engine.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\Microsoft.VisualStudio.Telemetry.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\Microsoft.VisualStudio.Utilities.Internal.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\Newtonsoft.Json.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\zh-Hans\vs_setup_bootstrapper.resources.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\zh-Hant\vs_setup_bootstrapper.resources.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\cs\vs_setup_bootstrapper.resources.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\es\vs_setup_bootstrapper.resources.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\pt-BR\vs_setup_bootstrapper.resources.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\tr\vs_setup_bootstrapper.resources.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\de\vs_setup_bootstrapper.resources.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\fr\vs_setup_bootstrapper.resources.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\it\vs_setup_bootstrapper.resources.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\pl\vs_setup_bootstrapper.resources.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\ko\vs_setup_bootstrapper.resources.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\ja\vs_setup_bootstrapper.resources.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\ru\vs_setup_bootstrapper.resources.dll... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\vs_setup_bootstrapper.config... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\vs_setup_bootstrapper.exe.config... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\detection.json... Preparing: C:\Users\ContainerAdministrator\AppData\Local\Temp\d72b561233936e8d6ab5ae0c54f2f8a3\vs_bootstrapper_d15\vs_setup_bootstrapper.json... Removing intermediate container 6cbc44f9334a ---> 1b1b3cfefd1a Step 12/13 : ENTRYPOINT C:\BuildTools\Common7\Tools\VsDevCmd.bat && ---> Running in 7f3b10836253 Removing intermediate container 7f3b10836253 ---> 42b49ac16d3c Step 13/13 : CMD ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"] ---> [Warning] Shell-form ENTRYPOINT and exec-form CMD may have unexpected results ---> Running in ab492d7c9f81 Removing intermediate container ab492d7c9f81 ---> 07c424236fe0 Successfully built 07c424236fe0 Successfully tagged buildtools2017native:latest
docker run -v C:\source\ConsoleApplication1:c:\ConsoleApplication1 --name ConsoleApplication1 buildtools2017native msbuild c:\ConsoleApplication1\ConsoleApplication1.sln /p:Configuration=Debug /p:Platform=x64 C:\Program Files\Docker\Docker\resources\bin\docker.exe: Error response from daemon: container 9a694425f5684f1206923f19a98cd08fbbf43d624f943e55915b24a5b21179fc encountered an error during hcsshim::System::CreateProcess: failure in a Windows system call: The system cannot find the file specified. (0x2) [Event Detail: Provider: 00000000-0000-0000-0000-000000000000] [Event Detail: Provider: 00000000-0000-0000-0000-000000000000] [Event Detail: vm\compute\management\orchestration\vmhostedcontainer\processmanagement.cpp(168)\vmcomputeagent.exe!00007FF6B6317B25: (caller: 00007FF6B62FA312) Exception(4) tid(120) 80070002 The system cannot find the file specified. CallContext:[\Bridge_ProcessMessage\ComputeSystemManager_ExecuteProcess\VmHostedContainer_ExecuteProcess] Provider: 00000000-0000-0000-0000-000000000000] extra info: {"CommandLine":""cmd /S /C C:\BuildTools\Common7\Tools\VsDevCmd.bat \u0026\u0026" msbuild c:\ConsoleApplication1\ConsoleApplication1.sln /p:Configuration=Debug /p:Platform=x64","WorkingDirectory":"C:\","Environment":{"COMPLUS_NGenProtectedProcess_FeatureEnabled":"0","NUGET_VERSION":"4.4.1","ROSLYN_COMPILER_LOCATION":"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\Roslyn"},"CreateStdInPipe":true,"CreateStdOutPipe":true,"CreateStdErrPipe":true,"ConsoleSize":[0,0]}. PS D:\docker\vs-dockerfiles\native-desktop>
It seems that it should be "ENTRYPOINT C:\BuildTools\Common7\Tools\VsDevCmd.bat" which you can try by setting --entrypoint C:\BuildTools\Common7\Tools\VsDevCmd.bat
on the docker-run commandline
Edit: This actually doesn't work.
It's --installPath
that's not working. It installs it to the default path regardless (C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\Tools\VsDevCmd.bat
).
Also the VsDevCmd.bat
doesn't work:
**********************************************************************
** Visual Studio 2019 Developer Command Prompt vError 0x57: Unknown parameter: path
** Copyright (c) 2020 Microsoft Corporation
**********************************************************************
Replace https://github.com/microsoft/vs-dockerfiles/blob/f6329944b194227d2b46a8ad47162f54811ff1ea/native-desktop/Dockerfile#L33 and the line following by: ENTRYPOINT ["C:\BuildTools\Common7\Tools\VsDevCmd.bat", "&&", "powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]
For me it worked to delete the last line containing the CMD ["powershell.exe"...] command. After that I'm able to build projects with the provided example command.
the ENTRYPOINT
is expected for passing build command directly from VS. See: https://devblogs.microsoft.com/cppblog/using-msvc-in-a-docker-container-for-your-c-projects/#trying-it-all-out
It's
--installPath
that's not working. It installs it to the default path regardless (C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\Tools\VsDevCmd.bat
).Also the
VsDevCmd.bat
doesn't work:********************************************************************** ** Visual Studio 2019 Developer Command Prompt vError 0x57: Unknown parameter: path ** Copyright (c) 2020 Microsoft Corporation **********************************************************************
The reason it seems to not work might be the lack of a backtick at the end of the line. Have you tried inserting one? It works for me here.
The code is:
RUN C:\TEMP\Install.cmd C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache `
--channelUri C:\TEMP\VisualStudio.chman `
--installChannelUri C:\TEMP\VisualStudio.chman `
--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended`
--installPath C:\BuildTools
And it should be:
RUN C:\TEMP\Install.cmd C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache `
--channelUri C:\TEMP\VisualStudio.chman `
--installChannelUri C:\TEMP\VisualStudio.chman `
--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended `
--installPath C:\BuildTools