无法在Azure Devops托管代理上构建Docker窗口映像

zpf6vheq  于 2022-12-11  发布在  Docker
关注(0)|答案(1)|浏览(159)

我正在尝试在Azure DevOps中编写一个构建管道,该管道将编译应用程序并构建Windows Docker映像。应用程序的构建过程正常,并且我签入了一个Docker文件,但在运行构建映像任务时,我收到以下错误。

"The container operating system does not match the host operating system."

我尝试过的构建代理是“windows-latest”和“windows-2022”,它们很可能是同一个东西。

pool:
  vmImage: 'windows-2022'

- task: Docker@2
  displayName: Build an image
  inputs:
    containerRegistry: 'MyContainerRegistry'
    repository: '$(project.name)'
    command: 'build'
    Dockerfile: '$(project.folder)/Dockerfile'

如果我试图在Linux主机上执行此操作,我会理解此错误,但由于我使用的是Windows主机,因此我不确定问题是什么。
DockerFile中的基本映像为:

FROM mcr.microsoft.com/windows:20H2
hkmswyz6

hkmswyz61#

正如错误消息所描述的,我想在重新测试之前,您需要再次验证容器映像版本与主机版本。您可以尝试更改Docker容器版本或切换到windows-2019 image
当参考Windows容器版本兼容性的文档时,我发现了下面的可读性。你可以看看更多的兼容性。
对于主机/访客Windows版本不匹配的任何其他情况,用户/内核模式之间的兼容性是可能的,但不保证,因此将阻止容器映像在主机上运行。
顺便说一下,下面是与Window server 2022兼容的docker镜像版本列表

最后,在开发过程中遵循Base Image Lifecycle也很重要。

相关问题