Jenkins03-GitLib+Docker实现CI/CD

  记录一下 如何使用Jenkins实现CI/CD 

前提:已有gitlib 并且已经创建完项目

1、Jenkins创建项目 我这里以maven项目为例

2、项目 -  配置

此处我以阿里云gitlib为例 当然也可以自己搭gitlib  一样的道理,设置好仓库url  和 Credentials  这个是连接gitlib仓库的账号密码

阿里云gitlib账号在 code首页 - 设置 - 个人设置

密码在 code首页 - 设置 - 密码  第一次使用  请直接点忘记密码  然后通过邮箱设置密码

3、创建远程触发webHook

红线处是我们的gitlib触发Jenkins的Webhook

4、gitlib设置Jenkins的WebHook

在code 阿里云首页 进入一个项目 -  设置 -  WebHooks

增加wehoooks后 可以点一下测试  如果返回403则表示 Jenkins不允许匿名访问  这时候我们要在Jenkins配置一下权限:

进入Jenkins - 系统设置 - 全局安全配置

我们勾选匿名用户允许触发任务

现在可以再测试一下  是否返回200 OK

接下来有的同学会问  我git上有多个分支  Jenkins下每个分支一个项目   那我向git仓库推送  然后触发Jenkins webhook的时候  Jenkins怎么知道我是哪一个分支呢,其实Jenkins也想到了这一点  提供了分支识别  我们进入 Jenkins - 项目 - 配置 -  构建触发器 -  高级展开

如下图:

 include这里填入分支名称即可(下面警告说找不到这个分支  不用管它) 

好了  这样Jenkins只会处理当前触发Push events的分支

5、执行自动构建(CI)

Jenkins拉完代码之后  默认是不会进行任何操作的 我们要让他执行自动构建 

项目设置:

因为是maven项目  Jenkins拉完代码后会自动执行maven构建命令

6、添加构建后的操作

我这里构建后让他执行一些命令 让他执行CD

这里sshServer 是本地 大家也可以生成sshKey登录 我这里为了方便使用的是密码  大家如果没有sshServer 可以去系统设置 - Publish over SSH 设置 创建

7、执行自动部署(CD)

构建完成后台 自动部署

结合docker思路:

 ①停止旧容器

②删除旧容器

③删除旧镜像

④构建镜像

⑤run镜像

这里是我的步骤:

这里使用的是maven的docker插件  其实就是自动写Dockerfile文件的  大家也可以自己写Dockerfile哈

PS:我这里是开发环境  生产环境千万别这样干哈  因为会造成业务中断

生产环境思路:

①删除旧镜像

②构建新镜像

③登录docker私库

④push镜像至docker私库

⑤生产环境手动执行更新

下面是我的步骤 仅供参考

注释部分是使用docker命令方式  我使用的是maven插件方式  一样的道理

 

至此 我们实现了CD即自动部署   也是最简化版的DevOps  但是小微企业应该够用了

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章