У меня есть gitlab-runner на сервере Windows с включенным Hyper-V.
С помощью docker API, доступного для сети, я могу запускать linux docker контейнеры и даже docker сам с docker: последний.
e:\>docker run -ti --rm -e DOCKER_HOST=tcp://10.99.0.12:2375 --name test docker:latest
/ # docker ps
CONTAINER ID ....
xxxxx docker:latest ... Up 10 seconds
/ # docker run -ti --rm busybox uname -a
Linux 42342423 4.14.35 ...
Так что, похоже, все правильно.
Когда я сейчас хочу запустить docker-compose up -d
на этапе развертывания, я получу сообщение об ошибке от gitlab-runner
Running with gitlab-runner 12.10.0 (c553af1a)
on Staging Runner
Preparing the "docker" executor
ERROR: Removing network for build
ERROR: Job failed: executor requires OSType=linux, but Docker Engine supports only OSType=windows
Возможно, я мог бы запустить gitlab-runner непосредственно на хост-машине, но лучше иметь все в хранилище и только установить docker.