【问题标题】:gitlab-runner on windows in docker fails to run with wrong OSType errordocker 中 Windows 上的 gitlab-runner 无法运行并出现错误的 OSType 错误
【发布时间】:2020-04-29 11:58:48
【问题描述】:

我在启用了 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。

【问题讨论】:

    标签: docker gitlab-ci-runner docker-for-windows docker-engine


    【解决方案1】:

    我最近遇到了这个问题。您必须进入 Windows 主机上的 Docker 并选择“切换到 Linux 容器...”选项。

    相关:

    【讨论】:

    • 不幸的是这里没有遗漏点。我可以毫无问题地运行 linux 容器,见上文。我也在 Windows 服务器上,并且 LCOW_SUPPORTED 环境变量设置为 1
    • 而我运行的 gitlab-runner 实例也是基于 linux 的镜像
    • 我的错。我有点困惑,如果您在 Windows 上运行运行程序,为什么不使用 Windows GitLab Runner? (docs.gitlab.com/runner/install/windows.html) 或者,换一种说法,如果你只运行 Linux 容器,为什么要在 Windows 服务器上运行?
    • 由于是为客户安装的Windows服务器,我没有太多发言权。而且我想要一个不太依赖于本地安装和配置的应用程序的设置。而是启动一个 docker 容器,其余的在 CI 中的代码中。但似乎除了切换到 Windows runner 之外我别无选择,因为 gitlab-runner 似乎不支持它。 gitlab.com/gitlab-org/gitlab-runner/-/blob/…
    • 对,这是有道理的。谢谢!
    【解决方案2】:

    对于遇到同样问题的每个人。

    Gitlab 目前不想实现 LCOW,所以使用 docker-executor 是不可能的。

    更多信息:https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4373

    【讨论】:

      猜你喜欢
      • 2021-03-20
      • 2020-04-26
      • 1970-01-01
      • 2020-03-05
      • 1970-01-01
      • 2018-08-17
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多