使用PasteSpider把你的代码升级到服务器的Docker/Podman上,K8S太庞大,PasteSpider极易上手!

如果你的服务器的内存小于16GB,那么K8S就和你无缘了,但是你可以使用PasteSpider来实现发布你的项目到服务器上!

PasteSpider是一个运维工具,使用NET编写的,部署于服务器的Docker/Podman上,他可以帮助你把你的项目发布到服务器上,支持源码模式,支持发布模式,支持一键发布!

下面基于实际案例做个例子:

我们以贴代码官方(www.pastecode.cn)的代码为例,贴代码的服务端发布分为2个部分,api部分和web部分。域名解析到服务器,然后通过Nginx代理到静态文件(web端)和运行在docker里面的api(支持部署多个,采用Nginx的upstream机制进行转发)端,

更新前端文件

我们一般使用vscode进行前端的开发或者说管理端的开发,编写改动完成后,打开PasteSpider文件同步客户端,

(上图截图自PasteSpider的配套文件同步工具PasteSpiderFile,目前适用于windows上使用,是一个CS接口的客户端)

双击2位置,表示确定这个项目--> 贴代码前端代码

然后客户端就会进行文件的对比,文件对比是采用MD5对比的,目前没有支持减法,也就是说如果你删除了某一个文件,这个同步动作是不会删除服务器上的文件的

这样更新的好处是,每次更新的文件很少,有变动的才会更新,然后是由于路径啥的都是提前配置好了的,不存在你项目A更新到项目B去的错误!!!

状态这一列会显示文件是否需要更新,0表示没有变动,-1表示忽略不需要更新,1,2表示需要更新,

然后点击上方的 ③同步文件,同步完成后服务端的文件就更新了。

更新服务端API

我这里采用的模式是发布模式,也就是要在本地的VS发布到文件夹,这样的好处是源码不需要弄到服务器上,然后是发布的时候遇到问题可以直接发现,修改后再次发布,所以对应的Dockefile就是打包的当前文件夹的模式,发布到文件夹的文件大概这个样子:

然后打开发布后的文件夹如下:

然后就是和web一样,要把这些文件基于MD5执行对比,然后上传到服务器后,然后建立升级的服务,如下:

在后端的代码更改完成后,点击解决方案,右键发布,发布完成后,在Spider同步客户端端按照上方的操作,双击2位置,表示确定选择这个项目,然后进行文件的对比。

对比完成后,点击 ③同步文件,然后点击他后面的 打开去构建,会看到如下图:(因为你的项目配置可能是多个环境,比如张三开发环境,李四的测试环境,正式环境,下面的步骤就是问你需要把这个服务发布到哪个环境下,至于这个环境需要发布到哪些服务器上就看这个项目的对应配置了)

我这里一般是点击4,因为1 和2 是默认勾选的,点击4就是告诉PasteSpider,帮我为这个服务建立新的版本的镜像包,并推送到我的私有仓库中,然后升级发服务器上的这个服务的这个环境的所有容器,同时如果配置了Nginx的话更新对应的Nginx的配置文件(因为容器的删除,启动会变更对应的IP地址等,如果是集群部署,可能数量也有变化!)

点击上图的4之后,可以到PasteSpider的后台查看这个任务,大概可以看到如下图:

上述标注的就是2个任务,构建镜像和升级服务,可以查看状态是否执行成功,如果配置了webhook,会收到对应的通知,比如我的配置了钉钉的webhook

最新版本的同步器支持一键升级,如下图

点击一键升级,会基于当前选定的项目,执行对比文件,有变动的,全部上传完成后,直接启用默认的都见并升级!

管理页面

PasteSpider运行的资源占用

结语

  PasteSpider一直是我发布项目的工具,自己一直在使用,也一直在升级,比如后面支持的可以不使用私有仓库,可以不更新Nginx等,比如环境变量支持跟随容器设定等,都是在实际需求下的升级,有需求的项目就会有更新,一个没有需求的项目是不会有啥东西好升级的,只有在不断的使用中遇到不同的问题,然后才会推进一个项目的发展,目前PasteSpider采用双版本的方式,一个开源,一个内部开源的方式,期待你的使用!

相关推荐
RisunJan2 小时前
Linux命令-scriptreplay(终端会话回放)
linux·运维·chrome
x²+(y-√³x²)²=14 小时前
Linux打包文件到Windows,文件/文件类型丢失
linux·运维·windows
世人万千丶4 小时前
去重插入与超限淘汰:ArkTS 实现鸿蒙搜索历史的 LIMIT 艺术
运维·服务器·学习·华为·harmonyos·鸿蒙
未来之窗软件服务4 小时前
企业自动化运营-电子合同预览-东方仙盟
运维·自动化·仙盟创梦ide·东方仙盟
Android系统攻城狮4 小时前
Linux PipeWire深度解析之pw_properties_iterate调用流程与实战(六十五)
linux·运维·服务器·音频进阶·pipewire音频进阶
研华科技Advantech5 小时前
案例 | 从离线巡检到在线看护:研华PHM解决方案赋能石油钻井平台智能运维
运维·人工智能·边缘计算
難釋懷5 小时前
Nginx主动健康检查
运维·nginx
ITyunwei09875 小时前
内存溢出报错,实战处理记录
运维·服务器·企业微信
Elastic 中国社区官方博客5 小时前
你的 AI agent 不需要你的 API 密钥:使用 OAuth 2.1 对 Elasticsearch MCP 服务器进行身份验证
大数据·运维·人工智能·elasticsearch·搜索引擎·全文检索
FreeTinker6 小时前
AP AC组网中的远程运维挑战及内网穿透技术应用分析
运维