Hi all!
I have laid out in Has Drone given up on Windows containers? why I need to run drone-runner-docker on Windows with Hyper-V isolation.
Unfortunately, Hyper-V isolation only assigns 2 core to a newly started Docker container by default. This massively reduces the performance of build processes run in Windows containers via Drone CI.
As written in Hyper-V isolation uses only 2 cores. · Issue #1877 · docker/for-win · GitHub, Docker supports an optional --cpu-count
parameter to assign more than 2 cores. However, it is not enough to just run the drone-runner-docker container with that parameter. drone-runner-docker itself also needs to launch all its containers with that parameter.
Fortunately, that parameter is supported by the Docker Go client: container package - github.com/docker/docker/api/types/container - pkg.go.dev
drone-runner-docker would only need to be extended to populate that CPUCount
parameter from a new environment variable, e.g. DRONE_CPU_COUNT
.
Please add such an environment variable to make Drone usable for Windows containers again.
I already had to switch from Process Isolation to inferior Hyper-V Isolation due to drone-runner-docker images not being available for newer OS versions.
CC @TP_Honey
Best regards,
Colin Finck