【发布时间】:2019-07-08 10:39:48
【问题描述】:
我知道让 msdeploy 跨平台 (https://github.com/aspnet/Tooling/issues/583) 存在一个未解决的问题。但我想知道是否有任何解决方法在 Linux 的 Windows IIS 机器上部署 NetCore 应用程序。
我有一个 CentOS jenkins-agent,它执行 dotnet 构建、dotnet 测试和 dotnet 发布。在 Windows 代理中,我会调用 MSDeploy,但我没有。如何解决这个问题?
【问题讨论】:
-
就像那个线程指出的那样,最简单的方法是构建一个 Docker 镜像,然后像任何其他 Docker 镜像一样启动它。你还想要什么?
-
@LexLi 我有一台 Windows Server 机器,其中有很多应用程序已经在使用这个 IIS。我需要在同一个 IIS 中启动应用程序。在这种情况下,我看不出 docker 图像如何适合。您是否建议我在 Linux 代理中启动 Windows 映像并使用它的 msdeploy?
-
今天的 Windows Server(取决于您使用的版本)应该能够将 Docker 映像作为一等公民托管,而 .NET Core 从一开始就自然支持该功能。MSDeploy 是单独设计的考虑到 Windows/IIS,所以看到该线程中没有做任何事情我并不感到惊讶。
-
@LexLi 问题比这更大。我知道我可以在我的 Windows Server 中托管一个 docker 映像。但我的 netcore 应用程序是使用 IIS 过滤器的旧门户的一部分,因此该应用程序需要作为与门户的其余部分在同一 IIS 中运行的要求。
-
@LexLi 当然,如果我准备好改变我的环境以至于在我的 Windows 服务器上安装整个 Docker 基础架构……我会把它放在 Linux 服务器上!
标签: jenkins iis continuous-integration asp.net-core-2.2 .net-core-2.2