介绍
介绍
jenkins在持续集成工作当中起到的作用,简单一句话就是:手动转自动。一般情况下,如果没有jenkins工具,我们要发版上线功能的流程是:从版本库检出最新代码 》部署到灰度机器 》进行自动化测试 》将灰度机器连接Nginx。这里面的每一个环节都需要人员去一步一步操作,即便有脚本辅助,还是会有风险,而且时间成本高。
使用jenkins工具把这一系列的事情都自动完成,并记录构建记录,就可以大大降低发版风险,提高发版效率。
镜像
tag
jenkins的docker比较老了,最近的一个都是3年前了,大概都转去用gitlab了吧?
福哥选择的是最新版本2.60.3,jenkins最大的好处就是比gitlab需要的内存小、插件还多!
结构
照例我们先把镜像拉取下来,然后启动一个容器,看看里面都有什么,弄明白了自己才好捣鼓啊!
拉取镜像
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/。
停止临时容器
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非常非常的省心,虽然版本没有那么新,但是我喜欢~~