使用Dockerfile基于2.60.3镜像搭建jenkins环境【20210721】

发表于 2021-07-21 10:56:37
阅读 102

介绍

介绍

jenkins在持续集成工作当中起到的作用,简单一句话就是:手动转自动。一般情况下,如果没有jenkins工具,我们要发版上线功能的流程是:从版本库检出最新代码 》部署到灰度机器 》进行自动化测试 》将灰度机器连接Nginx。这里面的每一个环节都需要人员去一步一步操作,即便有脚本辅助,还是会有风险,而且时间成本高。

使用jenkins工具把这一系列的事情都自动完成,并记录构建记录,就可以大大降低发版风险,提高发版效率。

镜像

tag

jenkins的docker比较老了,最近的一个都是3年前了,大概都转去用gitlab了吧?

福哥选择的是最新版本2.60.3,jenkins最大的好处就是比gitlab需要的内存小、插件还多!

home/topic/2021/0721/11/fd7998b447bb6db1e7af9e766b61008e.png

结构

照例我们先把镜像拉取下来,然后启动一个容器,看看里面都有什么,弄明白了自己才好捣鼓啊!

拉取镜像

docker pull jenkins:2.60.3

启动临时容器

docker run -tid --name jenkins2 -h jenkins2 -p 8080:8080 jenkins:2.60.3

切入临时容器

docker exec -ti jenkins2 /bin/bash

查看结构

进入容器后,全局查找一番。

jenkins@jenkins2:/$ find / -iname "*jenkins*"
find: ‘/var/cache/ldconfig’: Permission denied
find: ‘/var/cache/apt/archives/partial’: Permission denied
/var/jenkins_home
/var/jenkins_home/.java/fonts/1.8.0_171/fcinfo-1-jenkins2-Linux-3.10.0-1127.el7.x86_64-en.properties
/var/jenkins_home/jenkins.install.UpgradeWizard.state
/var/jenkins_home/war/META-INF/JENKINS.SF
/var/jenkins_home/war/META-INF/JENKINS.RSA
/var/jenkins_home/war/META-INF/maven/org.jenkins-ci.main
/var/jenkins_home/war/META-INF/maven/org.jenkins-ci.main/jenkins-war
/var/jenkins_home/war/images/jenkins-redbg.png
/var/jenkins_home/war/images/jenkins.png
/var/jenkins_home/war/WEB-INF/lib/commons-fileupload-1.3.1-jenkins-1.jar
/var/jenkins_home/war/WEB-INF/lib/jenkins-core-2.60.3.jar
/var/jenkins_home/war/WEB-INF/lib/json-lib-2.4-jenkins-2.jar
/var/jenkins_home/war/WEB-INF/lib/jmdns-3.4.0-jenkins-3.jar
/var/jenkins_home/war/WEB-INF/lib/trilead-ssh2-build-217-jenkins-11.jar
/var/jenkins_home/war/WEB-INF/lib/commons-jelly-1.1-jenkins-20120928.jar
/var/jenkins_home/war/WEB-INF/lib/xstream-1.4.7-jenkins-1.jar
/var/jenkins_home/war/WEB-INF/lib/commons-jexl-1.1-jenkins-20111212.jar
/var/jenkins_home/war/WEB-INF/lib/jna-posix-1.0.3-jenkins-1.jar
/var/jenkins_home/war/WEB-INF/lib/dom4j-1.6.1-jenkins-4.jar
/var/jenkins_home/war/WEB-INF/jenkins-cli.jar
/var/jenkins_home/war/WEB-INF/update-center-rootCAs/jenkins-update-center-root-ca
/var/jenkins_home/war/WEB-INF/update-center-rootCAs/jenkins-update-center-root-ca.txt
/var/jenkins_home/secrets/org.jenkinsci.main.modules.instance_identity.InstanceIdentity.KEY
/var/jenkins_home/secrets/jenkins.security.ApiTokenProperty.seed
/var/jenkins_home/secrets/jenkins.model.Jenkins.crumbSalt
/var/jenkins_home/jenkins.CLI.xml
find: ‘/etc/ssl/private’: Permission denied
/tmp/hsperfdata_jenkins
find: ‘/root’: Permission denied
find: ‘/proc/tty/driver’: Permission denied
find: ‘/proc/1/map_files’: Operation not permitted
find: ‘/proc/6/map_files’: Operation not permitted
find: ‘/proc/72/map_files’: Operation not permitted
find: ‘/proc/79/map_files’: Operation not permitted
/usr/share/jenkins
/usr/share/jenkins/jenkins.war
/usr/local/bin/jenkins.sh
/usr/local/bin/jenkins-support

浏览器测试

打开浏览器,访问默认网页http://192.168.2.68:8080/。

home/topic/2021/0721/11/9c2d60efdaa91b1006dcfe5e3015da2f.png

home/topic/2021/0721/11/cac71b0bfefe0e24ef57cebae72ab130.png

停止临时容器

docker stop jenkins2

删除临时容器

docker rm jenkins2

Dockerfile

福哥发现jenkins基本不需要自己改什么东西,所以编写Dockerfile就简单多了!

Dockerfile

一个非常标准的Dockerfile配置文件,只有一个EXPOSE将8080端口暴露出来而已。

FROM jenkins:2.60.3

MAINTAINER Andy Bogate
MAINTAINER tongfu@tongfu.net
MAINTAINER https://tongfu.net/dockerfile
MAINTAINER 2021/7/21
MAINTAINER v1.0.0

EXPOSE 8080

总结

今天福哥教给了童鞋们使用Dockerfile去搭建jenkins环境的方法,使用Dockerfile安装jenkins非常非常的省心,虽然版本没有那么新,但是我喜欢~~