WTM框架使用技巧之:CI/DI(持续集成/持续部署)

463570e65ec59cbd6070885a1493c652.png

快点关注我们吧

b27ceff058b8996a34d4a7b34b3457fa.png

作者介绍

王晓东,从事工业物联网行业多年,深入了解纺织、汽车零部件等制造业业务。开发过MES、WCS、SCADA、智能产线、质量追溯、工业通讯、linux网关等系统。对跨平台部署、运维有一定经验。使用WTM框架提高了40%的开发效率,WTM框架作为学习.Net跨平台的起点也是非常推荐的。


1. 什么是WTM框架?

  一个快速、灵活、社区活跃、最最最最高效的.netcore 后台管理系统。详见 https://wtmdoc.walkingtec.cn/

  欢迎大家付费支持WTMPlus,反哺社区(我已充值,还未使用,等vue3版本)。

2. 通过本文可以实现什么?

通过使用主流的开源软件或技术实现WTM项目自动化部署到ubuntu系统。

  1. 通过Gitee管理WTM项目代码

  2. 通过Jenkins获取代码提交事件,从而生成WTM镜像

  3. 容器运行WTM镜像

3. 你需要准备什么?

  1. 准备一台Ubuntu云服务器(或虚拟机安装花生壳,因为要用到外网)

  2. ubuntu、git、docker的基础知识(没了解过也无所谓,我会手摸手)

  3. 准备好耐心,本文适合对ubuntu不是很熟悉,但是想把WTM运行在Ubuntu上的朋友。包括git、gitee配置、jenkins安装配置部署,很多都是一劳永逸的,坚持下来,会有收获

4. 安装配置基础环境 

  4.1关于gitee

4.1.1 什么是gitee

国产免费git源码管理平台

4.1.2 gitee可以干什么

多人协作 、代码备份、触发自动化构建(webhook)

4.1.3 下载安装git https://git-scm.com/download/win

4.1.4 下载安装tortoisegit及语言包 https://tortoisegit.org/download/ 

4.2  git管理WTM代码

4.2.1 新建WTM项目

简单起见,先使用sqlite

85fe4f1f8d2a5969a058528fc4de262b.png

        4.2.2 gitee注册、登陆

4.2.3 gitee管理wtm代码

新建代码仓

3e5c31a262138827b444c352e2f8c1e5.png

复制代码仓地址

29a2d2867e2317b8a4cbbe6f0524560e.png

克隆代码仓,输入代码仓地址

2af81efa9f7e969a1a7b4b96afa7bdb2.png

wtm代码放入git所在文件夹

15101975ce43ec1f5814b96c2e04f22e.png

提交代码

9ae35ebba170b4e442615f1a4cf302cf.png

24955b037a89cc3340134a4f5e61db1e.png推送代码

771a6970056aa7d9d5930d749f317a57.png

eec6e6999af3329314a880fbbec28c23.png

刷新gitee页面,可以看到提交的代码

1a1a1ec98489c35907b656a9394f3736.png

4.3 关于docker

4.3.1 什么是docker

将WTM和.netcore运行时打包在一起,生成一个镜像,从而运行在任何操作系统中

4.3.2 docker安装

sudo curl -fsSL https://get.docker.com | bash -s docker

4.4 关于Jenkins

4.4.1 jenkins

基于java的持续集成工具,用来实现自动获取gitee提交事件,拉去代码、编译代码、构建WTM镜像、运行WTM镜像。

4.4.2 jenkins安装

注意这里没有持久化。

sudo docker run -d --restart always --name testjenkins -p 8888:8080 -p 50001:50000 -e TZ="Asia/Shanghai" \
-v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -d jenkins/jenkins:lts
进入jenkins容器

1

cat /var/jenkins_home/secrets/initialAdminPassword

查看jenkins初始密码

1

cat /var/jenkins_home/secrets/initialAdminPassword

修改docker权限

1

sudo chmod 777 /var/run/docker.sock

访问主机9090端口,用户名jenkins 密码是刚刚获取到的

系统管理=>插件管理=>高级=>最下方升级站点 输入  https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

4.4.3 安装gitee插件

7468b54660545f2690d2b2f7dddaf11f.png

4.4.4 gitee新增令牌

963c65acb510571b9a8c79b671ef4282.png

 4.4.5 jenkings 配置gitee插件

系统管理=>系统配置

添加Gitee凭据,用自己的gitee用户名和密码

52cd4757671d90b38b6a4ded3d0a1379.png

b94feded6bad4d5a88e483da8846de48.png

4.4.6 新建任务

cff68bf99e4ad4ed3c5b471b7d6eb873.png9c1eb9b5379b09e4941fe8c7caa42ad9.png

af2d6815e9961de6c2eaa9866e94d508.png

生成一个webhook密码,先记下来

8c387a435305f829f65174efce150408.png

构建新增shell,等下步执行完后再保存

c6e6a4fd264f018806a07d2ff5967951.png

826b299a7d783fb1b4eadcc43437f93a.png View Code

配置gitee的webhook,保存后,再保存上一步的jenkins

9fc48b509952c15431647e856d54fd0f.png

5.修改WTM源码

wtm MVC项目配置文件新增,以防止其余的多语言看起来比较乱    

<SatelliteResourceLanguages>zh-Hans,en</SatelliteResourceLanguages>

9a49817cb220b873c35ff5df8edbd175.png

6.修改Dockerfile

c8251678165f1edae75f67b02fbce9f5.png View Code

ffa200de92958058686a5a96a975d55d.png

7. 提交、推送源码

86abc5b53979643aac28f5222c671848.png

8. 查看jenkins

f89be00691eab73523a48e28fd01126d.png5f51ad39e59e173fd36061b746b24ef9.png

  耐心等待,第一次比较慢,看网络环境要10-20分钟左右,后面就会很快,因为有了基础镜像

9. 查看wtm页面

访问云服务器的8888端口(别忘了打开防火墙),可以看到经典的WTM桌面啦。

重点是我们修改过的页面

793f4184634b0cdd3e3ef8d527951ce9.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297993.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php 建立自己的框架,利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备...

“一个时代结束了&#xff0c;另一个时代开始了。”Framework Interoperability Group(框架可互用性小组)&#xff0c;简称 FIG&#xff0c;成立于 2009 年。FIG 最初由几位知名 PHP 框架开发者发起&#xff0c;在吸纳了许多优秀的大脑和强健的体魄后&#xff0c;提出了 PSR-0 …

python3 UnicodeEncodeError: 'ascii' 错误

2019独角兽企业重金招聘Python工程师标准>>> python 3.4 使用urllib.request.urlopen() 打开url时候&#xff0c;如果url中包含中文&#xff0c;出现了“UnicodeEncodeError: ascii codec cant encode ”的错误&#xff0c;修复步骤如下 在url中有中文的地方加入…

女朋友的道歉方式

1 女朋友的道歉方式2 看吧,无聊的时候什么事都干得出来3 这猫太坏了&#xff01;4 还以为是特效,原来是实物 5 叉子的妙用6 也太信任这块玻璃了吧……7 棉花糖炸酱面......大家感受一下你点的每个赞&#xff0c;我都认真当成了喜欢

单元测试(三)基本使用

介绍本文来演示一下同事教导后的写法&#xff0c;同样有些单元测试是为了演示而写的单元测试。本文使用组件&#xff1a;Xunit、Moq以及dotNet相关知识注&#xff1a;本文内容基于上一篇操作首先指定一个方法编写单元测试&#xff0c;并且要保证没有其他因素干扰的情况下去进行…

帆软帮助文档_帆软:像阿甘一样,奔跑在商业智能的赛道上

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 晶少出品 | CSDN云计算(ID&#xff1a;CSDNcloud)故事开始于一片洁白的羽毛&#xff0c;从空中降落缓缓飘过房屋、街道、树梢&#xff0c;最终落在了主人公阿甘的脚旁&#xff0c;他没有过多思考就将羽毛轻轻收藏书中……这是…

叫板BBC!80后湖南姑娘,花3年首次拍出水下的中国,惊艳了全世界

全世界只有3.14 % 的人关注了爆炸吧知识众所周知&#xff0c;中国拥有约960万平方公里的陆地面积&#xff0c;我们生活在这片大地之上。但却鲜有人知道&#xff0c;中国的水下也有一座城。这是一座位于杭州千岛湖下的千年古城&#xff0c;历经61年&#xff0c;它们在水底&#…

lua loadstring传递参数_lua学习之函数篇

函数函数是对语句和表达式进行抽象的主要机制两种用法一是可以完成特定的任务&#xff0c;一句函数调用被视为一条语句二是以只用来计算并返回特定的结果&#xff0c;视为一句表达式print("Hello, World")a math.sin(3) math.cos(10)print(os.date())​无论哪种用法…

EF Core 6 简化的数据库上下文注册

EF Core 6 简化的数据库上下文注册IntroEF Core 6 将简化现在的服务注册&#xff0c;DbContext 的服务注册将会更简单一些Sample直接来看示例代码吧&#xff1a;现在我们注册 EF Core 的 DbContext 通常是这样的&#xff1a;const string connectionString "DataSourcete…

快要“成精”的波士顿机械狗,开始卖了,价格不贵准备搞一只

全世界只有3.14 % 的人关注了爆炸吧知识重磅消息&#xff1a;这只全球著名的网红狗终于。。开&#xff01;售&#xff01;了&#xff01;哦&#xff0c;不对&#xff0c;放错图了&#xff01;应该是这只&#xff01;一起来看看视频介绍——6月17日&#xff0c;据科技时报&#…

BeetleX.WebFamily文件图片管理集成

BeetleX.WebFamily在2.4.8版本中集文件管理功能&#xff0c;通过这一功能可以不写任何代码的情况即可集成文件和图片的上传管理功能。接下来详细介绍下如何引入这一功能组件。文件管理功能是基于Vue和Element&#xff0c;所以只有在BeetleX.WebFamily中使用Vue和Element模板才能…

怎么部署_2020怎么部署新零售商城?

移动电子商务的发展壮大&#xff0c;5g网络技术的扶持&#xff0c;新零售概念时代推动店家完成零售转型&#xff0c;网上零售商城&#xff0c;再加上线下与推广线下的玩法&#xff0c;带来了效率和效益的提升。一&#xff0c;运用社交媒介&#xff0c;大力发展新零售概念下的销…

python self 值自动改变,在python中对self的理解

在python中对self的理解 &#xff1a;一、self的位置是出现在哪里&#xff1f;首先&#xff0c;self是在类的方法中的&#xff0c;在调用此方法时&#xff0c;不用给self赋值&#xff0c;Python会自动给他赋值&#xff0c;而且这个值就是类的实例--对象本身。也可以将self换成别…

各种震撼的慢镜头,奇怪的知识又增加了!​

全世界只有3.14 % 的人关注了爆炸吧知识慢镜头&#xff08;高速摄影&#xff09;可能是现代最伟大的发明之一。从身边的日常到那些比较罕见的事物&#xff0c;慢镜头下看起来都比平时更酷&#xff01;喵星人接球这行云流水的动作&#xff0c;秒杀国足&#xff01;这是用多台风扇…

Dapr牵手.NET学习笔记:跨物理机负载均衡服务调用

dpar在同一台电脑上不能run 相同appid&#xff0c;这个在上篇说过&#xff0c;所以就用外部负载均衡nginx来对应&#xff0c;那在不同的host中跑同一服务&#xff0c;看看dapr内部的负载均衡是怎么实现的。说说现有的服务&#xff0c;两个服务&#xff0c;订单服务&#xff0c;…

电脑编程教学_2020太原数控车床电脑编程一对一实操教学不限学时

2020太原数控车床电脑编程一对一实操教学不限学时石家庄工之艺数培训学校培训‘数控技术员’ 学生时&#xff0c;拿到图纸和毛坯,能够自己的在数控机床上做出成品。实行教学&#xff0c;“小班授课&#xff0c;一对一的教&#xff0c;理论实践相结合&#xff0c;随到随学&#…

多功能复合机基于用户认证功能的实现过程详解

多功能复合机基于用户认证功能的实现方法 -----网络设备共享案例分析 公司需求&#xff1a;***是一家租售写字楼的服务性企业&#xff0c;主要是针对小型企业进行出租&#xff0c;房间有大有小&#xff0c;大的可以容纳5-10人&#xff0c;小的可以容纳1-4人左右。由于都是一些小…

用python写简单爬虫,用Python写简单的爬虫

准备&#xff1a;1.扒网页&#xff0c;根据URL来获取网页信息importurllib.parseimporturllib.requestresponse urllib.request.urlopen("https://www.cnblogs.com")print(response.read())urlopen方法urlopen(url, data, timeout)url即为URL&#xff0c;data是访问U…

单元测试(二)基本使用争议篇

介绍常用的单元测试是测试方法、API等&#xff0c;下面我们来演示一下Xunit测试框架的简单使用&#xff0c;有些是为了演示而写的单元测试。最下面有反转&#xff0c;一定要看到最后操作创建单元测试项目本次文章还在原来项目的基础上进行操作&#xff0c;右键解决方案添加单元…

听说你趁我不在家,欺负我老婆?

1 听说你趁我不在家欺负我老婆了&#xff1f;▼2 当男生们聚在一起时他们都会做什么&#xff1f;▼3 其实我是广西人&#xff0c;每顿要嗦1吨粉▼4 山西人的饮水机里放的都是醋&#xff1f;▼5 可现实中又有几个总裁没有啤酒肚呢&#xff1f;▼6 开学考试&#xff0c;一考…

RHEL5.3下MRTG+SNMP的搭建

一、MRTG的简介 Mrtg(Multi Router Traffic Grapher,MRTG)是一个监控网络链路流量负载的工具软件&#xff0c;它通过snmp协议从设备得到设备的流量信息&#xff0c;并将流量负载以包含PNG格式的图形的HTML文档方式显示给用户&#xff0c;以非常直观的形式显示流量负载(可以在网…