Gitlab CI-错误:作业失败:执行程序需要OSType = linux,但Docker Engine仅支持OSType = windows

在运行Gitlab CI管道时遇到此错误。据我了解,错误表明我正在尝试在Windows docker-engine上运行Linux类型的docker映像?但问题是我正在使用Windows docker映像。可能是什么问题?

  

错误:作业失败:执行程序需要OSType = linux,但Docker Engine仅支持OSType = windows

我的CI:

image: hello-world:nanoserver

stages:
  - build

build1:
  stage: build
  script:
    - echo "Hello world"
a642975818 回答:Gitlab CI-错误:作业失败:执行程序需要OSType = linux,但Docker Engine仅支持OSType = windows

  
    

“共享”标签和“简单”标签有什么区别?

  
     

某些图像将“简单标签”和“共享标签”部分分开   在“支持的标签和相应的Dockerfile链接”下(请参见mongo   图片示例)。

     

“简单标签”是“单个” Linux或Windows映像的实例。它   通常是清单清单,其中可以包含为   其他架构;例如,mongo:4.0-xenial当前具有   amd64和arm64v8的映像。 Docker守护程序负责   选择适合主机架构的映像。

     

“共享标签”是始终指向清单清单的标签,   包括可能的多个Windows版本的某种组合   和Linux映像跨越其各自映像的架构-   在mongo示例中,4.0标签是一个共享标签,由(   在撰写本文时)所有4.0-xenial,   4.0-windowsservercore-ltsc2016、4.0-windowsservercore-1709和4.0-windowsservercore-1803。

     

“简单标签”使docker运行mongo:4.0-xenial可以“正确执行   事物”跨单个平台上的体系结构(对于Linux,   mongo:4.0-xenial)。 “共享标签”使docker运行mongo:4.0可以   可以同时在Linux和许多不同版本的   支持的Windows(例如Windows Server Core LTSC 2016,   Docker守护程序再次负责确定   基于主机平台和版本的相应映像。

我建议您尝试共享标签:

image: hello-world

latest标签具有:

linux/386

windows v10.0.17134.1069/amd64

windows v10.0.17763.802/amd64

Docker将为您挑选合适的人

here中,您需要执行者docker-windows来运行Windows Container

因此您可以将executor = "docker-windows"添加到跑步者配置

,

hello-world:nanoserver映像基于Linux。因此,将引发错误消息。

您正在使用Windows docker引擎。使用winamd64/hello-world

本文链接:https://www.f2er.com/3136699.html

大家都在问