使用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采用双版本的方式,一个开源,一个内部开源的方式,期待你的使用!
使用PasteSpider把你的代码升级到服务器的Docker/Podman上,K8S太庞大,PasteSpider极易上手!的更多相关文章
- VC6完整项目代码升级到VS2010
VC6完整项目代码升级到VS2010,有需要请联系我,专业C++开发,邮箱153786575@qq.com
- EF升级6.0数据库链接不上问题
昨天搞了个mvc4 先从net4.0 升级4.5后 数据库连接不上了, 然后升级ef未最新的6.1 居然还报错 不到方法:“System.Data.Objects.ObjectContext S ...
- 持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本
持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本 一:本文通过jenkins调用shell脚本的的方式完成从Git服务器获取代码.打包.部署到web服务器.将web服务器从负 ...
- IntelliJ IDEA之如何提交代码到SVN服务器
一.准备 参照<IntelliJ IDEA教程之如何配置SVN>这篇文章配置SVN插件.提交代码到SVN之前,记得要先创建版本库,请参照<<SVN如何建立版本库>> ...
- jenkins结合脚本实现代码自动化部署及一键回滚至上一版本
持续集成之⑤:jenkins结合脚本实现代码自动化部署及一键回滚至上一版本 一:本文通过jenkins调用shell脚本的的方式完成从Git服务器获取代码.打包.部署到web服务器.将web服务器从负 ...
- 【转载】Linux升级NTPD服务器-编译安装ntp-4.2.8p12与配置
[转载]Linux升级NTPD服务器-编译安装ntp-4.2.8p12与配置 1. 系统与软件版本 1.1 系统版本 rhel6.4(Red Hat Enterprise Linux Server r ...
- JQuery Mobile 的引用代码,以及在手机浏览器上字体太小的解决办法
JQuery Mobile 的引用代码: <link rel="stylesheet" href="http://code.jquery.com/mobile/1. ...
- Docker学习总结(14)——从代码到上线, 云端Docker化持续交付实践
2016云栖大会·北京峰会于8月9号在国家会议中心拉开帷幕,在云栖社区开发者技术专场中,来自阿里云技术专家罗晶(瑶靖)为在场的听众带来<从代码到上线,云端Docker化持续交付实践>精彩分 ...
- 在docker容器上如何实现代码的版本管理
之前在一台centos7的虚拟机上部署了docker并运行了三个容器给开发写代码用,写代码肯定会涉及到版本控制管理. 开始建议是开发在容器中写代码,然后通过docker commit的方式将其保存为i ...
- Eclipse插件(导出UML图,打开文件资源管理器插件,静态代码分析工具PMD,在eclipse上安装插件)
目录 能够导出UML图的Eclipse插件 打开文件资源管理器插件 Java静态代码分析工具PMD 如何在eclipse上安装插件 JProfiler性能分析工具 从更新站点安装EclEmma 能够导 ...
随机推荐
- PostgreSQL 12 文档: 部分 VIII. 附录
部分 VIII. 附录 目录 A. PostgreSQL错误代码 B. 日期/时间支持 B.1. 日期/时间输入解释 B.2. 处理无效或不明确的时间戳 B.3. 日期/时间关键词 B.4. 日期/时 ...
- 数据结构课后题答案 - XDU_953
参考书: 数据结构与算法分析(第二版) 作者:荣政 编 出版社:西安电子科技大学出版社 出版日期:2021年01月01日 答案解析:
- P7561[JOISC 2021 Day2] 道路の建設案 (Road Construction) 题解
P7561[JOISC 2021 Day2] 道路の建設案 (Road Construction) 题解 题目描述 JOI 国是一个 \(x\times y\) 的二维平面,王国里有 \(n\) 个城 ...
- 十分钟学会angular
首先笔者有一定的vue基础,但是遇到了含有angular的应用,因此需要学习angular的应用,在学习过程中将自己的学习步骤给一一记录下来,因此假设读者也是具有html及js的基础,在此基础上可以跟 ...
- Python数据分析易错知识点归纳(四):Matplotlib
四.matplotlib 基本特性 import matplotlib.pyplot as plt import numpy as np x = np.linspace(-3, 3, 50) y1 = ...
- 我学到的一下vue使用技巧
这两天学到的vue使用技巧 v-if , 当封装组件的时候,用到的props,最外层最好加个v-if,防止出现cannot read property of undefined 这样的错误,如果pro ...
- XCTF-favorite_number
题目 (xctf.org.cn) 判断,既要数组强等于,又要首元素不等:php有下标越界溢出漏洞,因此0可以通过整型溢出得到 绕过if判断 playload:stuff[4294967296]=adm ...
- 二 APPIUM Android自动化 环境搭建(转)
1.安装JAVA运行环境 2.安装Android开发环境 3.安装nodejs 下载地址:https://nodejs.org/en/ 下载完成之后双击安装. 4.安装APPIUM,Appium服务端 ...
- MySQL配置简单优化与读写测试
测试方法 先使用sysbench对默认配置的MySQL单节点进行压测,单表数据量为100万,数据库总数据量为2000万,每次压测300秒. sysbench --db-driver=mysql --t ...
- 论文解读(SimGCL)《Are Graph Augmentations Necessary? Simple Graph Contrastive Learning for Recommendation》
Note:[ wechat:Y466551 | 可加勿骚扰,付费咨询 ] 论文信息 论文标题:Are Graph Augmentations Necessary? Simple Graph Contr ...