.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/CD1.1、持续集成continuous integration 持续集成是一种软件实践,流程为:开拓 => 打包 => 集成 => 测试
1.2、持续交付continuous delivery 持续交付是一种软件工程手腕,流程为:测试 => 发布
1.3、持续支配continous deployment 持续支配是在持续交付的管道中发布版本给终极用户的一种软件工程流程,流程为:发布 => 支配上线
2、JenkinsJenkins 是一个基于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/jenkinsUSER 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 updateARG dockerGid=999RUN 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-composeRUN 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 directoryBuild step 'Execute shell' marked build as failure
在Jenkins操作宿主的Docker的时候会涌现谢绝访问的问题,实在便是容器的jenkins用户没有权限访问容器外的docker命令,以是 RUN命令 须要把Jenkins用户加入到Docker用户组
2、构建jenkins镜像
docker build . -t auto-jenkins
看到以下字样就构建成功了。
Successfully built 80a4f61b5b6fSuccessfully tagged auto-jenkins:latest
3、创建jenkins项目文件的挂载目录
mkdir -p /var/jenkins_home
4、修正目录权限
这一步必不可少!
会导致权限不敷报错
chown -R 1000 /var/jenkins_home
5、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/bashcat /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 containerCID=$(docker ps | grep "core50test" | awk '{print $1}')echo $CIDif [ "$CID" != "" ];then docker stop $CID docker rm $CIDfi#docker stop core50test;# 删除这个container#docker rm core50test;# build镜像并且打上tagdocker 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最全办理方案,常规篇
.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),及时理解最新动态。