0x08 - Docker小鲸鱼的使用笔记 [2] 自动化的第一步 with Jenkins

Jenkins

自动化难题

当你完成了代码的提交,
当你重新又反复地进行着,搭建镜像,上传镜像,运行容器的操作,
你是否发觉这一切重复的劳作让人有点疲惫。

如果说,能够在完成了代码开发工作后,将代码 push 到云上的托管仓库时,
就可以自动进入流程,让计算机托管完成上述的一切任务,那开发工作也会变得惬意而轻松。

诚然,我们可以写一个简单的 shell 脚本:

1
2
3
4
5
$ docker build -t myApps:v1.0 .
$ docker login --username=yourname your.registry.address.com
$ docker tag myApps:v1.0 your.registry.address.com/myApps:v1.0
$ docker push your.registry.address.com/myApps:v1.0
$ docker rmi your.registry.address.com/myApps:v1.0

它就可以半自动地将代码打包成镜像并装入线上的镜像仓库。
可是这样的方法让代码管理成为了一个头疼的问题。

如果说可以在线上进行这一切的操作,包括测试和代码审查,能将这一切的流程进行自动化处理,
那么对于后续的开发工作来说,可以提升相当大的开发效率。

于是请到今天的主角,Jenkins,一款好用的开源持续集成工具。

工作流程

我们想要的解决的问题是,希望将从代码提交至部署运行之间的所有流程,让 Jenkins 帮我们做自动化处理。

那么简单来说,可以将步骤整理成下面这个样子:

  1. 通过 Git 提交代码到 Gitee。
  2. 触发 Gitee 的提交 hook ,会向指定的地址发送一个 post 请求。
  3. 让 Jenkins 获取这个 post 请求, 然后 Jenkins 在本地服务器上将程序打包并上传至云上镜像。
  4. 通知集群,并更新至最新的镜像。

0x00 从安装开始

安装 Jenkins 并不是一件特别难的事,请看这里
选择正确的版本安装,以及正确地配置环境即可。

这里嘛 ~ 以后想起来的话会贴一些可能需要注意的事项。

可以先看下 Gitee 的 [官方教程] (https://gitee.com/help/articles/4193)

0x01 配置 Jenkins

事实上 Jenkins 的配置并不难,依照其一步一步来即可。

Step 1 新建

新建一个自由风格的项目

Step 2 配置代码管理方式

使用 Git 来管理我们的的代码

Step 3 配置 Git hooks

安装 Gitee 插件,部署 Deployment Key,部署 Gitee Hooks

Step 4 配置 Docker

Docker Cloud,Docker 配置

Step 5 配置运行模式

在部署前如何运行命令行,或额外的命令