介绍
介绍
jenkins在持续集成工作当中起到的作用,简单一句话就是:手动转自动。一般情况下,如果没有jenkins工具,我们要发版上线功能的流程是:从版本库检出最新代码 》部署到灰度机器 》进行自动化测试 》将灰度机器连接Nginx。这里面的每一个环节都需要人员去一步一步操作,即便有脚本辅助,还是会有风险,而且时间成本高。
使用jenkins工具把这一系列的事情都自动完成,并记录构建记录,就可以大大降低发版风险,提高发版效率。
镜像
tag
直接从hub上搜索jenkins找到的official版本的是3年前的,然后福哥通过它安装之后发现插件完全不能用。经过一番折腾,发现官网推荐的镜像是jenkins/jenkins,但是jenkins/jenkins却没有official标签,这让官方强迫症的福哥好一番为难。既然这个是官方提供的链接,应该没有问题的,就是它了!
jenkins/jenkins不是按照版本号分版本的,福哥就选择了centos7这个版本,刚好我们的TFLinux也是cento7。
jenkins的官方地址是jenkins.io,可以通过jenkins-ci.org进入,主页是这样的~~
结构
照例我们先把镜像拉取下来,然后启动一个容器,看看里面都有什么,弄明白了自己才好捣鼓啊!
拉取镜像
docker pull jenkins/jenkins:centos7
启动临时容器
docker run -tid --name jenkins -h jenkins -p 8680:8080 jenkins/jenkins:centos7
切入临时容器
docker exec -ti jenkins /bin/bash
查看结构
进入容器后,全局查找一番。
bash-4.2$ find / -iname "*jenkins*" find: '/run/cryptsetup': Permission denied /usr/share/jenkins /usr/share/jenkins/jenkins.war /usr/bin/jenkins-plugin-cli /usr/local/bin/jenkins.sh /usr/local/bin/jenkins-support /tmp/hsperfdata_jenkins find: '/root': Permission denied /opt/jenkins-plugin-manager.jar /var/spool/mail/jenkins find: '/var/lib/yum/history/2020-11-13/2': Permission denied find: '/var/lib/yum/history/2020-11-13/1': Permission denied find: '/var/lib/yum/history/2020-11-13/4': Permission denied find: '/var/lib/yum/history/2020-11-13/3': Permission denied find: '/var/lib/machines': Permission denied find: '/var/cache/ldconfig': Permission denied /var/jenkins_home /var/jenkins_home/secrets/org.jenkinsci.main.modules.instance_identity.InstanceIdentity.KEY /var/jenkins_home/secrets/jenkins.model.Jenkins.crumbSalt /var/jenkins_home/war/WEB-INF/update-center-rootCAs/jenkins-update-center-root-ca-2 /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/war/WEB-INF/update-center-rootCAs/jenkins-update-center-root-ca-2.txt /var/jenkins_home/war/WEB-INF/lib/commons-jexl-1.1-jenkins-20111212.jar /var/jenkins_home/war/WEB-INF/lib/commons-jelly-1.1-jenkins-20120928.jar /var/jenkins_home/war/WEB-INF/lib/jenkins-core-2.303.jar /var/jenkins_home/war/WEB-INF/lib/json-lib-2.4-jenkins-2.jar /var/jenkins_home/war/WEB-INF/lib/commons-httpclient-3.1-jenkins-2.jar /var/jenkins_home/war/WEB-INF/lib/jenkins-stapler-support-1.1.jar /var/jenkins_home/war/META-INF/JENKINS.SF /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/META-INF/JENKINS.RSA /var/jenkins_home/war/images/jenkins.png /var/jenkins_home/war/images/jenkins.svg /var/jenkins_home/war/images/jenkins-header-logo-v2.svg /var/jenkins_home/war/images/jenkins-redbg.png /var/jenkins_home/.java/fonts/1.8.0_292/fcinfo-1-jenkins-RedHat-7.9.2009-en.properties /var/jenkins_home/jenkins.telemetry.Correlator.xml find: '/proc/tty/driver': Permission denied
浏览器测试
打开浏览器,访问默认网页http://192.168.2.68:8680/。
停止临时容器
docker stop jenkins
删除临时容器
docker rm jenkins
Dockerfile
福哥发现jenkins基本不需要自己改什么东西,所以编写Dockerfile就简单多了!
Dockerfile
一个非常标准的Dockerfile配置文件,只有一个EXPOSE将8080端口暴露出来而已。
FROM jenkins/jenkins:centos7 MAINTAINER Andy Bogate MAINTAINER tongfu@tongfu.net MAINTAINER https://tongfu.net/dockerfile MAINTAINER 2021/7/25 MAINTAINER v1.0.0 EXPOSE 8080
总结
今天福哥教给了童鞋们使用Dockerfile去搭建jenkins环境的方法,使用Dockerfile安装jenkins非常非常的省心~~
jenkins的官网以前是jenkins.org,后来大概是域名被抢注了吧,官网换成了jenkins.io,通过jenkins-ci.org可以进入,童鞋们不要弄错了!