CI/CD

它的意思是 持续集成/持续部署,这也不是新概念。那些八股文就不写了,说话的方式简单点:如果成功搭建CI/CD环境,当你需要迭代线上程序时,只需通过git提交代码就可以,其他什么都不用做。是不是很爽?这样你就拥有了快速迭代的能力,微服务大环境下,这也是必要的。

准备工作

1、准备一个.NET6项目:

2、准备一个gitee仓库

3、准备一台服务器(非必要)

安装Jenkins

首先在docker中运行这段代码(代码来自官网):

docker run \
-u root \
--rm \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean

没有提前下载镜像也没关系,因为它会自动下载。如下:

容器跑起来了,访问8080:

jenkins首次启动会进入安装向导,并且自动生成一个管理员账户,但是密码是输出到日志里的。因为我是通过docker启动的,所以要查看容器日志,语句:

docker logs [容器id/name]

密码在两行星号中间:

粘贴到刚才的页面点确认,进入下个页面:

页面给出了插件安装的两个选项:推荐安装、自定义安装,随意选一个即可。

安装结束后,进入账户设置页面:

可以跳过并继续使用admin账户,也可以自定义一个,建议自定义一个好记的。

最后设置一下地址就可以结束安装向导了:

添加并配置Gitee

Jenkins默认不支持gitee,需要下载一个gitee插件才可以,找到插件管理搜索gitee并下载即可:

然后进入系统设置,配置gitee:

需要注意这里的证书。点击添加,选择“Gitee API token”:

这里的APIV5 token,登录gitee账户,设置→私人令牌,生成一个新的就好。

添加好以后,选择证书并点击测试:

看到成功字样,保存退出。

新建工作流

接下来,新建一个“Freestyle”任务。

在“源码管理”这一页,选择Git,输入你仓库的地址:

这里会报错很正常,因为没有配置账户密码。点击新增一个证书,种类选账户密码,然后选择它。正常情况下就像这样:

然后在下面设置分支,这一项决定jenkins拉取哪个分支的代码(如果不写就是任意分支):

然后就是构建触发器,选推送代码到gitee时触发(这个url先拷贝出来):

打勾以后,会多出很多选项,其他的都不用管,只需要在这里生成一个token就可以:

然后回到gitee仓库,找到管理→webhooks→新建,填入准备好的地址和token:

添加成功后看下测试请求的结果,正常情况下是200:

接下来测试触发器是否可以正常工作。构建前工作区是空的:

手动构建后:

现在提交修改代码到gitee,看能否自动构建。我就直接用vs自带工具提交了:

然后转到jenkins后台,可以看到多出一个构建记录:

戳进去看控制台输出:

的确是我刚才提交的修改,自动构建成功。

下一步是拉到代码的同时,根据代码中的Dockerfile自动打包成镜像并且运行,下一篇继续。

.NET6 微服务——CI/CD(1):搭建Jenkins并实现自动构建的更多相关文章

  1. .NET 微服务——CI/CD(3):镜像自动分发

    如何通过Jenkins完成镜像分发?基本做法是:打包镜像→上传镜像到仓库→脚本分发.镜像仓库也有很多,比如docker hub.Harbor等,今天这一篇讲一下基于阿里云镜像仓库的操作. 首先,准备一 ...

  2. 分布式架构和微服务CI/CD的范本技术解读

    随笔分类 - 分布式架构--http://www.cnblogs.com/hujihon/category/858846.html (ZooKeeper.activemq.redis.kafka)的分 ...

  3. 唱吧DevOps的落地,微服务CI/CD的范本技术解读----最大的难点并不是实际业务代码的编写,而是服务的监控和调试以及容器的编排

    1.业务架构:从单体式到微服务 K歌亭是唱吧的一条新业务线,旨在提供线下便捷的快餐式K歌方式,用户可以在一个电话亭大小的空间里完成K歌体验.K歌亭在客户端有VOD.微信和Web共三个交互入口,业务复杂 ...

  4. 唱吧DevOps的落地,微服务CI/CD的范本技术解读

    1.业务架构:从单体式到微服务 K歌亭是唱吧的一条新业务线,旨在提供线下便捷的快餐式K歌方式,用户可以在一个电话亭大小的空间里完成K歌体验.K歌亭在客户端有VOD.微信和Web共三个交互入口,业务复杂 ...

  5. .NET 微服务——CI/CD(2):自动打包镜像

    准备工作 一.开启docker的tcp 我的服务器是linux,以端口2376为例,找到docker.service,在ExecStart下新增这段代码即可: -H tcp://0.0.0.0:237 ...

  6. .NET 微服务——CI/CD(4):避坑和一点经验

    如果你看过之前几篇文章,应该已经Jenkins成功搭建了CICD环境,但是进入正式环境会有一些坑,不注意中招的话很难受,这里总结一下,避免重复消耗精力. 后门漏洞 Jenkins有后门,这是个老问题了 ...

  7. 手把手0基础项目实战(一)——教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)...

    原文:手把手0基础项目实战(一)--教你搭建一套可自动化构建的微服务框架(SpringBoot+Dubbo+Docker+Jenkins)... 本文你将学到什么? 本文将以原理+实战的方式,首先对& ...

  8. 小D课堂 - 新版本微服务springcloud+Docker教程_6-06 zuul微服务网关集群搭建

    笔记 6.Zuul微服务网关集群搭建     简介:微服务网关Zull集群搭建 1.nginx+lvs+keepalive      https://www.cnblogs.com/liuyisai/ ...

  9. 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现

    庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介      在第七篇文章<庐山真面目之七微服务架构Consul ...

随机推荐

  1. webservice--常用注解

    定义说明书的显示方法1.@WebService(serviceName="PojoService", portName="PojoPort", name=&qu ...

  2. 初始化Linux数据盘、磁盘分区、挂载磁盘(fdisk)

    1.操作场景 2.前提条件 3.划分分区并挂载磁盘 4.设置开机自动挂载磁盘分区 1.操作场景 本文以云服务器的操作系统为"CentOS 7.4 64位"为例,采用fdisk分区工 ...

  3. zabbix之源码安装

    #:官网地址 https://www.zabbix.com/documentation/4.0/zh/manual/installation/install #:解压并创建用户 root@ubuntu ...

  4. spring mvc idea创建

    创建项目 创建项目 --> Spring --> Spring MVC --> 下面选择Download,会显示Spring MVC-5版本 如果是首次使用IDEA,因为没有配置ma ...

  5. java中的++i是线程安全的吗?

    java中的++i是线程安全的吗?为什么?怎么使它线程安全呢? 先说答案: 非线程安全 先说下为什么是非线程安全的? 从Java内存模型说起 Java内存模型规定了所有的便利都存储在主内存中,每个线程 ...

  6. 03 - Vue3 UI Framework - 首页

    顶部边栏做完了,接下来开始做官网的首页 返回阅读列表点击 这里 创建视图文件夹 让我们先新建一个 src/views 文件夹,用来存放官网的主要视图 然后在该文件夹下新建两个 vue 文件,作为我们的 ...

  7. tcache poisoning(爆破stout获得libc并且熟练使用了realloc)

    这道题目帮助我学习了realloc这个函数,是一道十分经典的题目,我会尽量的把exp的每一步都说清楚 例行检查我就不放了 讲程序放入ida中 比较简单的流程,没有show功能,所有我们需要通过爆破st ...

  8. 如何把整张表格的数据通过form表单的方式传回后台

    开发背景: 前段时间遇到这么一个需求,就是把一整张表格的数据存储在数据库中,之后再渲染在页面中,还可以进行重新编辑. 例如下边的课程表(为了方便,所以都是软件工程). 我也是经过一段时间的思考,才实现 ...

  9. org.apache.jasper.runtime.ELContextImpl cannot be cast to org.apache.jasper.el.ELContextImpl

    org.apache.jasper.runtime.ELContextImpl cannot be cast to org.apache.jasper.el.ELContextImpl错误怎么解决: ...

  10. PSpiceAA-高级分析例程

    一.高级分析应用例程 1.1.例程电路原理图(同向放大电路) 器件模型使用PSpice-ELEM库中的模型. 1..1.1.仿真测试波形图 1.2.灵敏度分析 1.2.1菜单选择:PSpice-> ...