我在启用Hyper-V的Windows服务器上有一个gitlab运行程序。
通过向网络公开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
我也许可以直接在主机上运行gitlabrunner,但更确切地说,我可以把所有东西都放在存储库中,只需要安装docker。
我最近遇到过这种情况。您必须进入Windows主机上的Docker并选择"切换到Linux容器…"选项。
相关:
- Gitlab CI-错误:作业失败:executor需要OSType=linux,但Docker引擎仅支持OSType=windows
对于遇到同样问题的每个人。
Gitlab目前不想实现LCOW,所以使用docker executor是不可能的。
更多信息:https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4373