Visual Studio Build Tools Container
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
JoYo c5e2802ce9 added rust layer 8 months ago
.gitignore init 8 months ago
Dockerfile removed nuget 8 months ago
README.mdown removed nuget 8 months ago
docker-compose.yaml added rust layer 8 months ago
rust.Dockerfile added rust layer 8 months ago
vs15.config update docs for interative shell instructions 8 months ago
vs16.config removed nuget 8 months ago
win_build_tools_install.ps1 init 8 months ago
winxp.Dockerfile minor fix, winxp cmd 8 months ago
winxp_build_tools_install.ps1 init 8 months ago


Visual Studio Build Tools Container

This project builds a minimal (ish) Docker container for the Visual Studio build tools (MSVC). A second image is constructed for Windows XP Visual Studio build tools (v141_xp). Powershell scripts are included to try and recreate these build environments directly on a Windows 10 workstation.


A Windows 10.0.19041.804+ workstation or VM with minimum 8 GB of memory is required. The more concurrent containers you have running, the more memory and CPU cores are required.

Each container requires one core and approximately 4 GB of memory.

  1. Download and install Docker for Windows.

    • Select "Switch to Windows Containers" when prompted.

Build Image

Prior to running a container the Docker image will need to be built. This step is automated but time consuming. It only needs to be built once.

  1. Open powershell and navigate to this project.

  2. Run docker compose with the configuration provided by this project in docker-compose.yaml

    docker-compose build

This will install both the Windows v142 and Windows XP v141_xp build chains into their respective containers.

Reference these containers later with the names:

  • win_build

  • winxp_build

Run Containers

It is recommend that a docker compose file is used to run these containers as paths on Windows can be a bit tricky. Make sure to use forward slashes in paths used within docker compose files.

Below is an example docker-compose.yaml file used to build a project configured with cmake.

version: '3'

    image: win_build
      - .:C:/source/
  • volumes: are mounted within the Docker container.

    • C:/source/ is assumed to be the project being build with MSVC.

To build a Windows XP project use the image: winxp_build container image.

Build Your Windows Project

The above docker-compose.yaml file should be stored within your project and will reference the built Docker images by name, not by path. Once this file is created within your project run the following command to begin the build process.

docker-compose run win_build

This will drop you into the visual studio developer shell or console for winxp.

To modify the developer shell environments replace command: in your docker-compose.yaml with the desired environment variables or scripted build commands.

version: '3'

    image: win_build
      - .:C:/source/
    command: powershell -Command Import-Module C:\\msvc\\Common7\\Tools\\Microsoft.VisualStudio.DevShell.dll; Enter-VsDevShell -VsInstallPath C:\\msvc\\

    image: winxp_build
      - .:C:/source/
    command: cmd /k C:\\msvc\\Common7\\Tools\\VsDevCmd.bat

Optional Workstation Scripts

We have done our best to provide powershell scripts that should reproduce these build environments on a Windows 10 workstation. They can be ran but should be evaluated as there is no error checking.