使用Azure DevOps Server 2019将docker容器上的ASPNETAPP部署到Windows VM

使用Azure DevOps Server 2019将docker容器上的ASPNETAPP部署到Windows VM,azure,docker,azure-devops,Azure,Docker,Azure Devops,我目前正在使用Azure DevOps Server 2019(内部部署)部署ASP.NET应用程序(CI-CD) 是否可以将此应用程序部署为通过docker容器运行到Windows VM 我目前正在按照这个链接上的示例介绍如何在docker容器上运行ASP.NET应用程序 我如何通过使用Azure DevOps服务器2019来做到这一点 基本上,并非所有的资源/指南/操作指南都指向azure云或docker hub 是否可以将此应用程序部署为通过docker容器运行到Windows VM 是

我目前正在使用Azure DevOps Server 2019(内部部署)部署ASP.NET应用程序(CI-CD)

是否可以将此应用程序部署为通过docker容器运行到Windows VM

我目前正在按照这个链接上的示例介绍如何在docker容器上运行ASP.NET应用程序

我如何通过使用Azure DevOps服务器2019来做到这一点

基本上,并非所有的资源/指南/操作指南都指向azure云或docker hub

是否可以将此应用程序部署为通过docker容器运行到Windows VM

是的,这是可能的,您需要在部署应用程序的Windows VM上创建自托管代理。您只需使用powershell任务在自托管代理上运行
docker build
docker run
,而无需将映像上载到ACR/dockerhub

当然,您也可以像@Aravind提到的那样将构建的图像上传到ACR/dockerhub。并有一个powershell任务来提取图像

主要思想是使用powershell任务在Windows VM上托管的代理上运行docker命令。您可以参考以下步骤

1、创建自托管代理。请检查详细步骤

2、创建一个构建管道。 是创建yaml管道的示例。 是一个创建经典UI管道的示例

3、自定义生成管道,使用单个powershell任务运行docker build和docker run命令,如中所述。(您还可以使用来构建映像并将其推送到ARC/Dockerhub,然后使用powershell任务来拉取并运行映像,如@Aravind所述。)


注意:请确保Windows VM上安装了docker(powershell任务将调用VM上安装的docker cli)。并通过选择自托管代理所在的位置(包括自托管代理的代理池在创建代理时确定),选择自托管代理(托管在Windows VM上)以运行管道。

自动生成部分在将映像上载到ACR/docker hub的点处结束。然后,您需要有一个powershell/bash脚本(远程使用VM代理),该脚本将从ACR中提取映像并启动该VM中的容器。感谢Aravind,我将尝试探索此解决方案。
steps:

- powershell: |
   docker build -t aspnetapp .
   docker run -it --rm -p 5000:80 --name aspnetcore_sample aspnetapp

  displayName: 'PowerShell Script'