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 但是小微企业应该够用了