Hyper-V が有効になっている Windows Server に gitlab-runner があります。
docker API をネットワークに公開することで、Linux docker コンテナーを実行でき、docker:latest を使用して 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 をインストールするだけで済みます。