【问题标题】:Deploy a ASPNETAPP on a docker container to a Windows VM using Azure DevOps Server 2019使用 Azure DevOps Server 2019 将 Docker 容器上的 ASPNETAPP 部署到 Windows VM
【发布时间】:2020-02-21 08:33:02
【问题描述】:

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

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

我目前正在关注此链接上有关如何在 docker 容器上运行 ASP.NET 应用程序的示例。

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/docker/building-net-docker-images?view=aspnetcore-3.1

如何利用 Azure DevOps Server 2019 来做同样的事情。

基本上大部分资源/指南/操作指南都指向部署到 azure 云或 docker hub。

【问题讨论】:

  • 自动构建部分在您将图像上传到 ACR/docker hub 处结束。然后你需要有一个 powershell/bash 脚本(远程使用 VM 代理),它将从 ACR 中提取图像并启动该 VM 中的容器。
  • 感谢 Aravind,我会尝试探索这个解决方案。

标签: azure docker azure-devops


【解决方案1】:

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

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

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

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

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

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

3,自定义您的构建管道,使用单个 powershell 任务来运行 docker build 和 docker run 命令,如the tutorial 中所述。 (您也可以使用docker task 构建并推送镜像到 ARC/Dockerhub,然后使用 powershell 任务拉取和运行镜像,如@Aravind 所述。)

steps:

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

  displayName: 'PowerShell Script'

注意:请确保 docker 已安装在 Windows VM 上(powershell 任务将调用安装在 VM 上的 docker cli)。并通过选择自托管代理所在的agent pool 来选择自托管代理(托管在 Windows VM 上)来运行您的管道(包含自托管代理的代理池在创建代理时决定。 )

【讨论】:

    猜你喜欢
    • 2018-04-24
    • 2021-06-28
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多