是否可以使用容器在 Azure 管道中构建 .NET WPF 应用程序?

Is it possible to use containers to build .NET WPF application in Azure pipelines?

我们的是一个 .NET WPF 应用程序,它需要像 MSBuild 这样的工具和一些其他自定义工具来构建(总共需要在 Windows OS 之上安装大约 10 个工具)。我们将 Azure Pipelines 与 VM 一起用作构建代理。问题是每当我们必须增加构建代理的数量时,我们必须在每个代理中手动安装工具以使其准备好构建应用程序。

为了克服上述挑战,运行容器内的管道是否是一种可行的方法?例如,如果我们可以构建一个安装了所有工具的容器镜像,是否可以加载这个镜像,然后 运行 这个容器内的管道作业?

或者是否有可用于此手动安装的替代解决方案?谢谢。

PS:由于 IT 安全策略,克隆构建代理的 VM 不是一个选项。

Is it possible to use containers to build .NET WPF application in Azure pipelines?

答案是肯定的,你可以在yaml管道中使用container job

在 Linux 和 Windows 代理上,作业可能 运行 在主机或容器中。 (在 macOS 和 Red Hat Enterprise Linux 6 上,容器作业不可用。)容器提供与主机的隔离,并允许您固定特定版本的工具和依赖项。主机作业需要较少的初始设置和基础设施来维护。

容器提供了对主机操作系统的轻量级抽象。您可以 select 您的构建所需的操作系统、工具和依赖项的确切版本。当您在管道中指定容器时,代理将首先获取并启动容器。然后,作业的每个步骤都会 运行 在容器内。你不能有嵌套的容器。当代理已经 运行 在容器内时,不支持容器。