Windows Container Executor
Description
Create a new executor for Windows Containers.
Proposal
There are enough significant differences between the Linux Docker daemon and the Windows Docker daemon that it makes sense to develop Windows support as a separate executor to provide the same native Docker functionality of the existing docker
executor.
Links to related issues and merge requests / references
This is a list of issues I've identified so far and started tracking in my personal fork.
- Create/Publish prebuilt image(s) to Docker Hub
- [] Update getPrebuiltImage() to find Windows Image
- Validate apps/gitlab-runner-helper builds for Windows
- Update init() in executor_docker_command to support configurable shell
- Change Docker API version to 1.24
- Update parseDeviceString() in docker_executor.go to support Windows volume mapping syntax
- Set PassFile property to false for PowerShell
- Rename executor_* files in windows_docker package
- Refactor getPrebuiltImage() to pull from Docker Hub or use configuration define local image
- Create unit tests
- Create integration tests
-
Create necessary jobs in
.gitlab-ci.yml
- Handle missing prebuilt image gracefully
- Determine if we need to replace gitlab-runner-cache
- Do we need to replace gitlab-runner-build with something?
- Wonkiness in Powershell script execution
#1775 - Additional context