NETCore部署linux入魔Docker+Jenkins
off999 2025-01-18 23:09 25 浏览 0 评论
通过前面三篇:
.NET Core部署到linux(CentOS)最全解决方案,常规篇
.NET Core部署到linux最全解决方案,进阶篇(Supervisor+Nginx)
.NET Core部署到linux最全解决方案,高阶篇(Docker+Nginx 或 Jexus)
通过前面三篇文章的介绍,我们已经对.net core多方案部署到linux下有了非常全面的认识,小型团队已经足够使用。虽然目前的方案可以实现一键部署更新,但是还是需要登陆到linux服务器去执行相应的命令。
显示,这不是最优的方案,那么还有没有更好的方案呢?比如:当我们提交给git仓库后,自动触发部署命令是不是就更方便了呢?
答案是肯定的,我们可以借助jenkins来实现。
互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称 CI) 。
1、CI/CD
1.1、持续集成
continuous integration 持续集成是一种软件实践,流程为:开发 => 打包 => 集成 => 测试
1.2、持续交付
continuous delivery 持续交付是一种软件工程手法,流程为:测试 => 发布
1.3、持续部署
continous deployment 持续部署是在持续交付的管道中发布版本给最终用户的一种软件工程流程,流程为:发布 => 部署上线
2、Jenkins
Jenkins 是一个基于Java语言开发的CI持续构建工具,主要用于持续、自动的构建/测试软件项目。它可以执行你预先设定好的设置和脚本,也可以和 Git工具做集成,实现自动触发和定时触发器构建。
jenkins官网:https://www.jenkins.io/
2.1、安装jenkins
安装docker-conpose
因为jenkins需要用到本地的docker-compose环境,执行以下命令安装
docker exec -it jenkins /bin/bash进入容器内部安装docker-compose,安装步骤去
1、构建自定义的Dockerfile
# touch Dockerfile
# vim Dockerfile编写Dockerfile:
FROM jenkins/jenkins
USER root
# 清除了基础镜像设置的源,切换成阿里云源
RUN echo '' > /etc/apt/sources.list.d/jessie-backports.list \
&& echo "deb http://mirrors.aliyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list \
&& echo "deb http://mirrors.aliyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list \
&& echo "deb http://mirrors.aliyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list
#更新源并安装缺少的包
RUN apt-get update && apt-get install -y libltdl7 && apt-get update
ARG dockerGid=999
RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group
# 安装 docker-compose 因为等下构建环境的需要
RUN curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
RUN chmod +x /usr/local/bin/docker-compose如果不安装 libltdl7 会导致如下这个问题,原因是jenkins容器内部没有这个包
docker: error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory
Build step 'Execute shell' marked build as failure在Jenkins操作宿主的Docker的时候会出现拒绝访问的问题,其实就是容器的jenkins用户没有权限访问容器外的docker命令,所以 RUN命令 需要把Jenkins用户加入到Docker用户组
2、构建jenkins镜像
docker build . -t auto-jenkins看到以下字样就构建成功了。
Successfully built 80a4f61b5b6f
Successfully tagged auto-jenkins:latest
3、创建jenkins项目文件的挂载目录
mkdir -p /var/jenkins_home4、修改目录权限
这一步必不可少!会导致权限不足报错
chown -R 1000 /var/jenkins_home5、run我们自定义jenkins镜像 auto-jenkins
这里我用7080作为对外的jenkins ip(因为我的8080被占用了)
docker run --name jenkins -p 7080:8080 -p 50000:50000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/bin/docker \
-v /var/jenkins_home:/var/jenkins_home \
-d auto-jenkins使用docker ps 查看运行中的容器,如看到如下图,表示jenkins已正常启动:
6、完成jenkins安装
访问 http://你的服务器ip:7080
这里需要安装密码,证明这是你的服务器,进入容器:
docker exec -it jenkins /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword如下图所示,生成好了密码;
复制密码后,单击继续按钮。
如图,点击"安装推荐的插件",安装jenkins常用插件
安装完毕后,需要创建一个管理员用户账号,如下图所示。
提示:安装过程如果某个组件失败,可以重试一下。
到这里,jenkins安装结果,填写完管理员信息后,接下来开始jenkins自动化部署之旅。
安装成功后,Jenkins主界面:
2.2、jenkins配置
1、创建一个jenkins项目
新建项目
构建一个自由风格的软件项目
2、源代码管理
这里可以指定git分支
如果项目配置了公钥,那么在上图中,我们还需要配置凭证,否则是不能链接到git仓库的,如下图所示。
3、构建触发器
这里的是设置轮询去git拉取代码,如果代码有更新就触发构建操作,H/2 * * * * 是指每2分钟轮询拉取一次;
4、构建环境
Abort the build if it's stuck 是指如果构建过程中卡住了,就终止构建;这里是5是5分钟,5分钟超时构建失败;
5、添加构建脚本Execute Shell
填写构建脚本
image_version=`date +%Y%m%d%H%M`;
echo $image_version;
# 停止之前的docker container
CID=$(docker ps | grep "core50test" | awk '{print $1}')
echo $CID
if [ "$CID" != "" ];then
docker stop $CID
docker rm $CID
fi
#docker stop core50test;
# 删除这个container
#docker rm core50test;
# build镜像并且打上tag
docker build -t core50test:$image_version .;
docker images;
# 把刚刚build出来的镜像跑起来
docker run -p 8066:5000 --name core50test -d core50test:$image_version;
docker logs core50test;点击保存回到core50test项目界面
单击上图名称为"core50test"的项目,点击“立即构建”
构建控制台输出
构建成功,现在打开 http://你的服务器ip:5000,可以看到我们的网站:
如果网站有任何更改,提交代码,jenkins会自动拉取代码,并发布一个新的容器,等等刷新浏览器就行了;
构建状态
Successful蓝色:构建完成,并且被认为是稳定的。
Unstable黄色:构建完成,但被认为是不稳定的。
Failed红色:构建失败。
Disable灰色:构建已禁用
构建稳定性
构建稳定性用天气表示:晴、晴转多云、多云、小雨、雷阵雨。天气越好表示构建越稳定,反之亦然。
最后借用一张Jenkins的思维导图供大家参考:
全新跨平台版本.NET敏捷开发框架V5.0-RDIFramework.NET震撼发布
.NET快速开发框架-RDIFramework.NET 全新EasyUI版发布
RDIFramework.NET代码生成器全新V5.0版发布
解放双手,markdown文章神器,Typora+PicGo+七牛云图床实现自动上传图片
一网打尽,一文讲通虚拟机VirtualBox及Linux使用
.NET Core部署到linux最全解决方案,进阶篇(Supervisor+Nginx)
.NET Core部署到linux最全解决方案,高阶篇(Docker+Nginx 或 Jexus)
一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。
RDIFramework.NET官方网站:http://www.rdiframework.net/
RDIFramework.NET官方博客:http://blog.rdiframework.net/
特别说明,框架相关的技术文章请以官方网站为准,欢迎大家收藏!
RDIFramework.NET框架由海南国思软件科技有限公司专业团队长期打造、一直在更新、一直在升级,请放心使用!
欢迎关注RDIFramework.NET框架官方微信公众号(微信号:guosisoft),及时了解最新动态。
相关推荐
- 独一无二繁体字网名(独一无二繁体字网名大全)
-
超复杂网名用繁体字表示就应写成“超複雜”,看看复杂的繁体字“複雜”的写法是蛮复杂,所以简体字的运用大大方便了人们的使用。殺軟嬌貪歡張錯過樂極寵愛兩壹塹長壹牽帶?g??稀爱★?a流.浪.猪爱...
- 2025组装机配置清单(2020年组装机主流配置)
-
13代已经出了。现在入手12代英特尔平台性价比最高。这套在3000比较偏显卡,也可以显卡用影驰GTX16504GD6128Bit,价格1100,省下来的钱可以把内存升级为8G×2条16G。Cp...
- 宗门系统流小说排行榜(宗门系统文)
-
第一《史上第一祖师爷》作者:八月飞鹰短书评:系统主线任务:林锋开山立派,建立史上第一大宗门,林锋本人成为第一祖师。第二《修真门派掌门路》作者:齐可休书评:本命由天授,同参伴我行逍遥两相对,一道诵黄庭在...
- 水星路由器设置ip地址(水星路由器的ip地址怎么改)
-
mercury无线路由器设置IP地址的步骤如下: 1、先将宽带网线插到路由器的wan口,再插入电源插头。 2、在带有无线网卡的笔记本电脑上右击“网上邻居”,选择“属性”。 3、再右击“本地连接”...
- 正版w10系统多少钱
-
Windows10家庭版官方价格:888元Windows10专业版价格:1799元Windows10家庭版到专业版升级包价格:879元Windows10企业版价格:4200元Windows10教育版价...
- 七彩虹(七彩虹显卡)
-
https://www.colorful.cn/七彩虹于2005年深圳成立。深耕于电脑主机板卡硬件的二十年间,七彩虹完成了三大阶段的战略转型,成功地由计算机零组件代理商蜕变成为拥有自主研发、自主生产、...
- 华硕驱动下载专区(华硕官方驱动)
-
从华硕官网下载原装系统可以按以下步骤进行:1.打开华硕官网:https://www.asus.com/cn/。2.将鼠标移动到“支持”菜单上,并点击“驱动与工具”。3.在页面中找到“操作系统”选...
- 黑客教你破解wifi密码(黑客教你破解wifi密码是多少)
-
黑客是利用wifi的拼码,或者路由器的加密不强破解的,高级的黑客,在很短的时间内就可以破解密码繁杂的wifi你是用了别人的软件吧太相信别人了什么黑客。带一堆模块的玩意儿也叫黑客?黑客和骇客是两...
- 高仿ios主题全套软件(超高仿ios安卓主题)
-
IPhone12启动器全套仿Ios12桌面主题是一款能够让大家的安卓手机秒变苹果机的系统工具,IPhone12启动器可让你的手机直接变成IPhone12的桌面。从主题,桌面,Ui以及系统内的各种细节,...
- win10在哪里下载软件最好(win10软件在哪下载比较好)
-
1、点击Win10系统的开始菜单,然后在点击应用商店;2、打开Win10应用商店后,在搜索框里输入想要搜索的应用软件,然后点击检索;3、点击搜索到的应用,点击安装;4、点击安装后,系统会提示要切换到这...
- 电脑软件怎么安装(电脑软件怎么安装到手机上)
-
电脑怎么安装excel软件方法/步骤:1.在电脑左下角找到这个小圆圈,单击小圆圈打开搜索栏。搜索MicrosoftStore。2.在右上角找到搜索,单击搜索。在搜索中输入Excel。回车键打开。3....
- u盘win7系统安装盘(u盘里安装win7系统)
-
有些软件我们从网上下载安装时需要破解密码或者我们没有网时,直接需要把安装的软件,传到别的电脑,具体操作如下:1。直接把另一台电脑桌面上的软件复制或发送的优盘里,其实那只是一个快捷方式2.以ps软件为例...
- 语音输入法哪个好用(语音输入法免费版下载安装)
-
日常基本使用的讯飞和搜狗都还不错,对比来看的话,讯飞相对会更好一些。讯飞输入法在键盘输入方面进步非常快,功能也比较全面。单纯的语音方面,讯飞的稍微好一点,例如一些标点、断句之类处理的更加到位。讯飞支持...
- 手机app应用市场(手机里面的应用市场)
-
360手机助手是android智能手机的手机管理专家。提供海量的游戏、软件、音乐、小说、视频、图片,通过它轻松下载、安装、管理手机资源。所有提供信息资源,全部经过360安全检测中心的审核认证,绿色无毒...
-
- 开局最强系统(开局最强系统txt奇书网)
-
《最强奶爸系统》作者:最美猪猪小说简介同学甲:“我找到了月入七千的工作。”同学乙:“我找到了月入一万的工作。叶辰,你呢?”叶辰:“我老婆…是万亿市值超凡集团的老板,给我生了10个孩子。”同学们:???叶辰遭前女友陷害,阴差阳错邂逅了一位美女...
-
2026-01-03 07:03 off999
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
