我正在尝试在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
1条答案
按热度按时间hkmswyz61#
正如错误消息所描述的,我想在重新测试之前,您需要再次验证容器映像版本与主机版本。您可以尝试更改Docker容器版本或切换到
windows-2019 image
。当参考Windows容器版本兼容性的文档时,我发现了下面的可读性。你可以看看更多的兼容性。
对于主机/访客Windows版本不匹配的任何其他情况,用户/内核模式之间的兼容性是可能的,但不保证,因此将阻止容器映像在主机上运行。
顺便说一下,下面是与Window server 2022兼容的docker镜像版本列表
最后,在开发过程中遵循Base Image Lifecycle也很重要。