我在启用了 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
在部署阶段运行 a 时,我会从 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。