【问题标题】:How to implement Continuous Delivery with DNX and ASP.NET 5如何使用 DNX 和 ASP.NET 5 实现持续交付
【发布时间】:2015-12-09 08:45:07
【问题描述】:

我已经在 .net 平台上工作了几年,我必须说我对微软如何使 .net 跨平台兼容印象深刻。

我花了几个小时试图在 Mac 上运行一个使用 CoreCLR 构建的小型 hello world 应用程序。它奏效了。虽然还有很多 UNKNOWNS 我仍在尝试理解,但有一个问题我无法在 google 上找到答案。

如何自动部署 dnx 应用程序。我的意思是,你是否将你的 aspnet 5 应用程序编译成一个 nuget 包,然后在你的 linux 服务器上恢复它(我从未使用过 linux,所以不确定 nuget 在那里如何工作),然后运行 ​​dnx 命令?还是直接压缩后推送到服务器?

抱歉,这对我来说都是新事物,所以我的问题可能听起来很愚蠢。我只是想知道我可以为我的 asp.net 5 应用程序实现持续交付的最佳方式是什么。我的最终目标是在 linux 容器上托管我的应用程序。

【问题讨论】:

    标签: c# asp.net .net dnx coreclr


    【解决方案1】:

    您可以使用dnu publish --runtime <name of runtime> --no-source。这将创建一个文件夹,其中包含您的应用程序、其依赖项和运行时。然后,您所要做的就是在您的服务器上获取该文件夹。

    移动文件的方式实际上取决于您的场景...可能是 FTP、存储、Kudu(如果您在 Azure 网站上)等。

    另一种选择是在服务器上进行还原。虽然这会在您发布时减少应用程序的大小,但您必须在服务器上恢复可能不安全的包,并且还可能导致应用程序中断,因为提要上可能存在更新的、不兼容的包。

    虽然没有适合所有人的正确答案,但我发现如果您想要获得最可靠和一致的结果,您应该发布所有内容,在本地测试,然后将包复制到您的服务器上。

    对于 docker,我推荐同样的东西。使用运行时和无源发布,并创建一个包含结果文件夹的容器。

    【讨论】:

      猜你喜欢
      • 2017-11-16
      • 2016-09-26
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 2019-12-19
      • 1970-01-01
      • 2020-04-11
      • 1970-01-01
      相关资源
      最近更新 更多