gpt4 book ai didi

windows - 在 Azure DevOps Windows 托管的生成代理中运行 Linux 容器

转载 作者:行者123 更新时间:2023-12-02 18:06:02 25 4
gpt4 key购买 nike

我正在使用 Azure DevOps,并且有一个 Linux 构建管道 (ubuntu-16.04) 设置来构建代码,使用 Docker Compose 启动容器,然后使用容器运行集成测试。这一切都很好。

现在我想设置一个做同样事情的 Windows 构建管道。但是,同时使用 windows-2019win-1803图像,当我这样做时 docker stack up ,我收到此错误消息:

image operating system "linux" cannot be used on this platform



所以,我猜 Docker 是在 Windows 模式下安装的,并考虑使用以下方法将其切换到 Linux 容器:
DockerCli.exe" -SwitchLinuxEngine
或者
"%ProgramFiles%\Docker\Docker\DockerCli.exe" -SwitchLinuxEngine
然而, DockerCli.exe似乎根本没有安装可执行文件。

我能想到的只有两件事:
  • 设置自托管构建代理
  • 以某种方式在其他地方启动所需的容器

  • 但是这两者都需要大量的设置工作,我真的不需要,我也不想要运行成本或维护它的工作。

    是否有任何解决方法可以在托管的 Windows 构建代理上运行 Linux 容器?

    最佳答案

    Run Linux containers in an Azure DevOps Windows hosted build agent



    首先,查看安装在 Windows 托管代理上的列出的图像: Docker images in Windows hosted agent . 服务器上的 Docker EE 根本不支持 Linux 容器 .因此,不可能在 Hosted Win-1803 代理上构建 Linux docker 镜像。 它只能构建 Windows docker 镜像 .

    到目前为止,唯一的两种解决方法是使用基于 Windows 机器的自托管代理,或者运行具有两个独立代理作业的构建(在托管 Linux 代理上运行的一个代理作业和另一个代理作业之间来回传递构建工件)正在托管 Windows 代理上运行)。

    但是由于这两种解决方法对您来说都不方便,因此没有任何其他解决方法可以实现您想要的。

    另外,在我们的官方论坛上有一个这样的建议功能: Support for Docker with Linux Containers on Windows (LCOW) on hosted agent pool .你可以在那里投票和评论,我们的产品组团队会定期审查这些建议,并考虑将其作为开发者路线图。如果这个功能真的可以实现,我觉得构建Linux Container 会很方便,不用考虑只支持哪个agent。

    关于windows - 在 Azure DevOps Windows 托管的生成代理中运行 Linux 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57732505/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com