Mesos 1.0.0 introduced experimental support for Windows.
- Install the latest version of Visual Studio Community 2015. Make sure to select the Common Tools for Visual C++ and the Windows 10 SDK. Start Visual Studio Community to complete the setup and configuration.
- Install CMake 3.5.2 or later. Do not run CMake before finishing the Visual Studio Community setup.
- Install Gnu Patch 2.5.9-7 or later.
- If building from git, make sure you have Windows-style line endings.
git config core.autocrlf true.
- Make sure there are no spaces in your build directory.
C:/Program Files (x86)/mesosis an invalid build directory.
Following are the instructions for stock Windows 10 and Windows Server 2012 or newer.
# Start a VS2015 x64 Native Tool command prompt. # This can be found by opening VS2015 and looking under the "tools" # menu for "Visual Studio Command Prompt". # Change working directory. $ cd mesos # If you are developing on Windows, we recommend running the bootstrap. # This requires administrator privileges. $ .\bootstrap.bat # Generate the solution and build. $ .\support\windows-build.bat # After generating the Visual Studio solution you can use the IDE to open # the project and skip the next step. In this case it is recommended to set # `PreferredToolArchitecture` environment variable to `x64`. # NOTE: `PreferredToolArchitecture` can be set system-wide via Control Panel. $ msbuild Mesos.sln /p:PreferredToolArchitecture=x64 # mesos-agent.exe can be found in the <repository>\build\src folder. $ cd src # The Windows agent exposes new isolators that must be used as with # the `--isolation` flag. To get started point the agent to a working # master, using eiher an IP address or zookeeper information. $ mesos-agent.exe --master=<master> --work_dir=<work folder> --launcher_dir=<repository>\build\src
The current implementation is known to have the following limitations:
- At this point, only the agent is capable of running on Windows, the Mesos master must run on a Posix machine.
- Due to the 260 character
MAX_PATHlimitation on Windows, it is required to set the configuration option
--launcher_dirto be a root path, e.g.
C:\. In addition, the
TASK_IDthat is passed to Mesos should be short, up to about 40 characters. NOTE: If you schedule tasks via Marathon, your Marathon task id should be up to four characters long since Marathon generates Mesos
TASK_IDby appending a UUID (36 characters) onto the Marathon task id.
- Currently runs as Administrator (mainly due to symlinks).
- Only the
MesosContainerizeris currently supported, which does not provide resource isolation on Windows. Resource isolation will be provided via the
DockerContainerizer(e.g. Windows Containers) in the future.
- Most of the tests are not ported to Windows.
For more information regarding the status of Windows support in Mesos, please refer to the Jira epic.