一、Jenkins 容器化 部署
1.1 部署环境说明
IP地址 | 主机名 | 网络模式 | 系统 | 服务 |
---|---|---|---|---|
172.16.91.121 | master | 桥接 | centos7.5 | jenkins、docker |
172.16.91.222 | harbor | 桥接 | centos7.5 | harbor、sonar、docker |
1.2 版本说明
服务 | 版本 |
---|---|
jenkins | 2.150.2 |
docker | 18.06.1-ce |
1.3 准备Jenkins依赖的全局工具
为了验证Jenkins是否可以同时支持不同版本的全局工具,添加了mvn3.6,3.3.9, 以及jdk的不同版本。(可以根据自己的需要进行下载)
通过下面的连接,可以进行下载
https://pan.baidu.com/s/1OcsUcWVOe9oxru9tXPJFNA
如果jenkins的版本不合适的话,可以通过下面的地址,下载合适的war包
http://mirrors.jenkins.io/war-stable/
1.4 容器化部署sonar(非必须)
为了进行语法规则测试,才安装的sonar,
根据自己的实际情况,进行安装。
可以参考下面的链接,进行容器化部署安装:
https://www.jianshu.com/p/d36a12105e9d
1.5 容器化部署harbor(非必须)
可以参考其他博客。
1.6 构建jenkins所需要的Dockerfile
构建镜像
:
docker build -t jenkins .
1.7 编写启动脚本
(这里的脚本是略有问题,最下面有新的
)
为什么这里用了很多挂载呢?
- 如果将依赖的工具,全局添加到Dockerfile的话,将来不好维护。每次变化,都需要重新打镜像,势必镜像会越来越大。
- 将jenkins的主目录,挂载出来了,可以提高数据的可靠性,方便维护,使用。
使用环境变量的说明
- JENKINS_HOME, 必须有这个。不然的话,第一次重启的时候,需要重新设置, 不会用挂载出来的jenkins_home
- JAVA_HOME, 因为启动jenkins服务需要使用java命令,当然你可以使用带有java环境的基础镜像。
下面,可以启动jenkins服务。
登陆到页面172.16.91.121:8888/jenkins,按照提示,进行就可以了。
1.8 主要配置文件说明
a. credentials.xml
b. hudson.tasks.Maven.xml
c. config.xml
二、设置Jenkins
1. 安装插件
根据自己的需要,安装插件。
系统管理-->插件管理
我这里安装maven,docker,git,github,sonarquber
遇到的问题,插件选项不可用
2. 安装插件的方式
方式一: 参考下面的链接
https://www.jianshu.com/p/3b5ebe85c034
方式二: 参考下面的链接
http://updates.jenkins-ci.org/download/plugins/
下载好插件后,如docker.hpi, 然后,直接copy到plugins目录下,重启jenkins服务就可以了
。
3. 在系统设置里 配置sonar
4. 在全局工具里配置
4.1 配置Maven Configuration
4.2 配置JDK
4.3 配置git
4.4 配置SonarQube Scanner
4.5 配置Maven
4.6 配置docker
二、Jenkins测试
测试的功能包括: 代码托管、编译、构建镜像并上传到私有仓库、语法规则校验
2.1 代码托管
2.2 maven打包
2.3 构建镜像
2.4 语法规则校验
保存后,立即构建,就可以了。
出问题的话,可以从打印日志里,发现问题。
还可以发现运行的命令
。
可见,可以简单的认为,jenkins,就是将你要做的事情,串行执行,功能都是通过添加插件实现的。
备注:
突然发现,启动脚本中,maven仓库的挂载,忘记修改了。
如果这篇文章对你有帮助,请点个赞/喜欢,让我知道我的写作是有价值的,感谢。