「Jenkins探索系列」一、Docker环境下搭建Jenkins
目录
0、序言/准备
目前大部分的大厂/中厂, 或者说一些金融机构、非银金融机构, 其实已经大部分在使用Docker作为开发、测试环境的基础. 所以后续我们的所有涉及到系统搭建相关的工作, 尽量会优先使用Docker环境.
因为我自己本身是有长期购买腾讯云的云服务器与云存储. 所以列一些我自己的基础信息:
OS: CentOS 8 64位
虚拟环境: Docker version 20.10.21
Jenkins: 目前我是拿的最新的镜像: 2.397
JDK: 1.8 、1.11
GIT: 使用的是Jenkins镜像中自带的. 并没有在CentOS中另外再去安装GIT
Maven: 3.9.1
接下来, 我们就直接进入正题
1、安装Jenkins
1.1 下载镜像文件
[root@VM-0-3-centos ~]# docker pull jenkins/jenkins
Using default tag: latest
latest: Pulling from jenkins/jenkins
3e440a704568: Pull complete
e76dc321ee75: Pull complete
fc43e7961de2: Pull complete
5af64ce6074b: Pull complete
21fbf967e8f9: Pull complete
1a16fd81654c: Pull complete
cdd69c2f2d33: Pull complete
4a5e8d05df05: Pull complete
569e4b20e77e: Pull complete
137f6b37061b: Pull complete
88590f3663ac: Pull complete
71291196dab8: Pull complete
a385b99a35e9: Pull complete
Digest: sha256:0383a9f33411296e13fb22542290cd2bdaeb9a1163a7ea6f854b7cf2a84851e1
Status: Downloaded newer image for jenkins/jenkins:latest
docker.io/jenkins/jenkins:latest
[root@VM-0-3-centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins latest 2fef055370ae 3 days ago 471MB
[root@VM-0-3-centos ~]# pwd
/root
[root@VM-0-3-centos datakw]# mkdir jenkins
[root@VM-0-3-centos jenkins]# mkdir data
[root@VM-0-3-centos jenkins]# pwd
/data/datakw/jenkins
[root@VM-0-3-centos jenkins]# chown -R 1000:1000 /data/datakw/jenkins/data/
1.2 创建并启动容器
docker run -itd --name jenkins -v /usr/local/jenkins/data:/var/jenkins_home/ -p 8001:8080 -p 50001:50000 jenkins/jenkins
docker ps -a |grep jenk
ba0c2cb8ba8a jenkins/jenkins "/usr/bin/tini -- /u…" 13 seconds ago Up 8 seconds 0.0.0.0:8001->8080/tcp, :::8001->8080/tcp, 0.0.0.0:50001->50000/tcp, :::50001->50000/tcp jenkins
[root@VM-0-3-centos jenkins]# docker logs -f ba0c2cb8ba8a
1.3 修改jenkins源
重新启动Jenkins容器后,由于Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,需要重新设置下载地址为国内镜像站
在本地映射的目录中找到文件:hudson.model.UpdateCenter.xml;修改地址为:http://mirror.esuni.jp/jenkins/updates/update-center.json
root@VM-0-3-centos jenkins]# ll
total 4
drwxrwxrwx 12 root root 4096 Apr 1 11:40 data
[root@VM-0-3-centos jenkins]# cd data/
[root@VM-0-3-centos data]# ll
total 60
-rw-r--r-- 1 www www 1659 Apr 1 11:39 config.xml
-rw-r--r-- 1 www www 50 Apr 1 11:39 copy_reference_file.log
-rw-r--r-- 1 www www 29 Apr 1 11:39 failed-boot-attempts.txt
-rw-r--r-- 1 www www 156 Apr 1 11:39 hudson.model.UpdateCenter.xml
-rw-r--r-- 1 www www 171 Apr 1 11:39 jenkins.telemetry.Correlator.xml
drwxr-xr-x 2 www www 4096 Apr 1 11:39 jobs
-rw-r--r-- 1 www www 907 Apr 1 11:39 nodeMonitors.xml
drwxr-xr-x 2 www www 4096 Apr 1 11:39 nodes
drwxr-xr-x 2 www www 4096 Apr 1 11:39 plugins
-rw-r--r-- 1 www www 64 Apr 1 11:39 secret.key
-rw-r--r-- 1 www www 0 Apr 1 11:39 secret.key.not-so-secret
drwx------ 2 www www 4096 Apr 1 11:39 secrets
drwxr-xr-x 2 www www 4096 Apr 1 11:40 updates
drwxr-xr-x 2 www www 4096 Apr 1 11:39 userContent
drwxr-xr-x 3 www www 4096 Apr 1 11:39 users
drwxr-xr-x 11 www www 4096 Apr 1 11:39 war
[root@VM-0-3-centos data]# vim hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url>
</site>
</sites>
1.4 重启容器
[root@VM-0-3-centos data]# docker restart ba0c2cb8ba8a
ba0c2cb8ba8a
1.5 Jenkins页面配置
准备页面:

拷贝初始密码:
[root@VM-0-3-centos ~]# cd /data/datakw/jenkins/data/
[root@VM-0-3-centos data]# ll
total 60
-rw-r--r-- 1 www www 1661 Apr 1 11:51 config.xml
-rw-r--r-- 1 www www 100 Apr 1 11:45 copy_reference_file.log
-rw-r--r-- 1 www www 168 Apr 1 11:46 hudson.model.UpdateCenter.xml
-rw-r--r-- 1 www www 171 Apr 1 11:39 jenkins.telemetry.Correlator.xml
drwxr-xr-x 2 www www 4096 Apr 1 11:39 jobs
-rw-r--r-- 1 www www 907 Apr 1 11:46 nodeMonitors.xml
drwxr-xr-x 2 www www 4096 Apr 1 11:39 nodes
drwxr-xr-x 2 www www 4096 Apr 1 11:39 plugins
-rw-r--r-- 1 www www 129 Apr 1 11:45 queue.xml.bak
-rw-r--r-- 1 www www 64 Apr 1 11:39 secret.key
-rw-r--r-- 1 www www 0 Apr 1 11:39 secret.key.not-so-secret
drwx------ 2 www www 4096 Apr 1 11:39 secrets
drwxr-xr-x 2 www www 4096 Apr 1 11:51 updates
drwxr-xr-x 2 www www 4096 Apr 1 11:39 userContent
drwxr-xr-x 3 www www 4096 Apr 1 11:39 users
drwxr-xr-x 11 www www 4096 Apr 1 11:39 war
[root@VM-0-3-centos data]# cd secret
-bash: cd: secret: No such file or directory
[root@VM-0-3-centos data]# cd secrets/
[root@VM-0-3-centos secrets]# ll
total 12
-rw-r----- 1 www www 33 Apr 1 11:39 initialAdminPassword
-rw-r--r-- 1 www www 32 Apr 1 11:39 jenkins.model.Jenkins.crumbSalt
-rw-r--r-- 1 www www 256 Apr 1 11:39 master.key
[root@VM-0-3-centos secrets]# cat initialAdminPassword
9982f4d829ed4849aeebc24d085e2f95

选择插件来安装:

安装GIT插件:


创建管理员:

实例配置:



2、配置GIT、JDK、Maven
1、maven
下载地址:
https://maven.apache.org/download.cgi
[root@VM-0-3-centos data]# tar -xzf apache-maven-3.9.1-bin.tar.gz
2、JDK
下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
[root@VM-0-3-centos data]# tar -xzf jdk-8u361-linux-x64.tar.gz
3、Jenkins配置

配置JDK:

配置MAVEN:
[root@k8s-node1 conf]# cd /usr/local/jenkins/data/apache-maven-3.8.6/conf
#配置Maven的settings.xml,1. 镜像源修改为:阿里云镜像地址;2. 增加JDK1.8编译插件
[root@k8s-node1 conf]# vim settings.xml
<!-- 阿里云镜像地址 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<!-- JDK1.8编译插件 -->
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>

配置GIT:

3、配置邮箱

增加一个凭据:

设置Jenkins邮箱全局配置:



这里的HTMl内容先暂时网上随便找了一个贴上去:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0" style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
本邮件由系统自动发出,无需回复!<br/>
以下为${PROJECT_NAME }项目构建信息</br>
<td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>
</tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>触发原因: ${CAUSE}</li>
<li>构建状态: ${BUILD_STATUS}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
<li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
</ul>
<h4><font color="#0B610B">失败用例</font></h4>
<hr size="2" width="100%" />
$FAILED_TESTS<br/>
<h4><font color="#0B610B">最近提交(#$GIT_REVISION)</font></h4>
<hr size="2" width="100%" />
<ul>
${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
</ul>
详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
</td>
</tr>
</table>
</body>
</html>


浙公网安备 33010602011771号