CentOS上如何实现.NET CORE Web项目便捷的自动更新部署方案?

更新于
2026-10-09 16:54:40
1阅读来源:SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计769个文字,预计阅读时间需要4分钟。

CentOS上如何实现.NET CORE Web项目便捷的自动更新部署方案?

一、项目运行环境项目采用.NET5开发的Web系统,独立部署在省内外多台CentOS服务器上。系统运行在专网环境中(不接触互联网),业务运营时(在一段时间内)需请求外部服务。

一、项目运行环境

项目采用的是.NET5开发的Web系统,独立部署在省内异地多台CentOS服务器上,它们运行在甲方专网环境中(不接触互联网),甲方进行业务运作时(一段时间内)会要求异地服务器开机上线,同时要求我们在总部进行驻场运维和技术支持。

二、自动更新需求

每年(次)的业务流程甲方会要求做出一些调整,要求在线的服务器可以自动更新。

异地服务器对使用人员处于黑盒模式,同时项目可以运行在root权限下。

三、自动升级方案对比

1、Jenkins+Gitlab+自动代码审查+人工代码审查+人工发布更新;

2、Docker构建私有源,上游更新镜像后下游拉取新镜像启动;

3、国人开发的AntDeploy(github.com/yuzd/AntDeploy)

  • 支持docker一键部署(支持netcore)
  • 支持iis一键部署(支持netcore和framework)
  • 支持windows服务一键部署(支持netcore和framework)
  • 支持linux服务一键部署(支持netcore)
  • (支持增量发布)(支持一键回滚)(支持点火)(支持选择特定文件发布)(支持查看发布记录)
  • 支持脱离Visual Studio独立使用(跨平台支持windows系统和mac系统)
  • 支持Agent批量更新

4、国人开发的GeneralUpdate(gitee.com/Juster-zhu/GeneralUpdate)

CentOS上如何实现.NET CORE Web项目便捷的自动更新部署方案?

GeneralUpdate寓意为通用更新力致于成为全平台更新组件,包含常见个人、企业项目所需特性。并提供GeneralUpdate.PacketTool更新包打包工具。不过目前好像尚不支持.NET CORE的更新。

因为我们只有在甲方业务运行期间才有服务器的使用权,异地部署的服务器的使用人员不掌握服务器密码和不具备Linux操作能力,同时由于种种原因我们不能也不方便在甲方内网中部署Jenkins和Docker服务,加上现有的几种自动更新(持续交付)方案对我们来说比较复杂,所以我们只有另辟蹊径寻找一种对我们来说简单实用易部署的方案。

四、使用的自动升级方案

在我们开发另外一套客户端程序的时候,集成过一套自动更新组件(SimpleUpdater),简单描述一下就是它可以在客户端程序启动后到指定的192.168.12.25/web.zip" }

6、后续

因为mv命令在使用中没办法移动目录去覆盖程序目录,比如压缩包中有个 wwwroot/abc.js,在使用中发现mv命令好像没有办法把wwwroot/abc.js移动覆盖项目中的同路径文件,所以后续我们在更新脚本中使用了rsync命令,这个命令需要单独安装才可以使用。

可以先去下载安装这个组件后把sh脚本中的mv命令换成rsync即可

标签:NETCore

本文共计769个文字,预计阅读时间需要4分钟。

CentOS上如何实现.NET CORE Web项目便捷的自动更新部署方案?

一、项目运行环境项目采用.NET5开发的Web系统,独立部署在省内外多台CentOS服务器上。系统运行在专网环境中(不接触互联网),业务运营时(在一段时间内)需请求外部服务。

一、项目运行环境

项目采用的是.NET5开发的Web系统,独立部署在省内异地多台CentOS服务器上,它们运行在甲方专网环境中(不接触互联网),甲方进行业务运作时(一段时间内)会要求异地服务器开机上线,同时要求我们在总部进行驻场运维和技术支持。

二、自动更新需求

每年(次)的业务流程甲方会要求做出一些调整,要求在线的服务器可以自动更新。

异地服务器对使用人员处于黑盒模式,同时项目可以运行在root权限下。

三、自动升级方案对比

1、Jenkins+Gitlab+自动代码审查+人工代码审查+人工发布更新;

2、Docker构建私有源,上游更新镜像后下游拉取新镜像启动;

3、国人开发的AntDeploy(github.com/yuzd/AntDeploy)

  • 支持docker一键部署(支持netcore)
  • 支持iis一键部署(支持netcore和framework)
  • 支持windows服务一键部署(支持netcore和framework)
  • 支持linux服务一键部署(支持netcore)
  • (支持增量发布)(支持一键回滚)(支持点火)(支持选择特定文件发布)(支持查看发布记录)
  • 支持脱离Visual Studio独立使用(跨平台支持windows系统和mac系统)
  • 支持Agent批量更新

4、国人开发的GeneralUpdate(gitee.com/Juster-zhu/GeneralUpdate)

CentOS上如何实现.NET CORE Web项目便捷的自动更新部署方案?

GeneralUpdate寓意为通用更新力致于成为全平台更新组件,包含常见个人、企业项目所需特性。并提供GeneralUpdate.PacketTool更新包打包工具。不过目前好像尚不支持.NET CORE的更新。

因为我们只有在甲方业务运行期间才有服务器的使用权,异地部署的服务器的使用人员不掌握服务器密码和不具备Linux操作能力,同时由于种种原因我们不能也不方便在甲方内网中部署Jenkins和Docker服务,加上现有的几种自动更新(持续交付)方案对我们来说比较复杂,所以我们只有另辟蹊径寻找一种对我们来说简单实用易部署的方案。

四、使用的自动升级方案

在我们开发另外一套客户端程序的时候,集成过一套自动更新组件(SimpleUpdater),简单描述一下就是它可以在客户端程序启动后到指定的192.168.12.25/web.zip" }

6、后续

因为mv命令在使用中没办法移动目录去覆盖程序目录,比如压缩包中有个 wwwroot/abc.js,在使用中发现mv命令好像没有办法把wwwroot/abc.js移动覆盖项目中的同路径文件,所以后续我们在更新脚本中使用了rsync命令,这个命令需要单独安装才可以使用。

可以先去下载安装这个组件后把sh脚本中的mv命令换成rsync即可

标签:NETCore