回顾:上一文对Docker常用的命令以罗列的方式做了一个详尽的介绍。本文将使用这些命令搭建一个jenkins持续集环境,解决jenkins不能联网的问题来安装各种常用插件。
Jenkins 简述
Jenkins是什么
Jenkins是一个跨平台、免费、开源并且功能强大的应用程序,允许持续集成和持续交付项目,通过各种扩展插件可以处理任何类型的构建或持续集成。集成Jenkins还可以用于一些测试和部署技术。
持续集成是什么
随着微服务的兴起,系统被拆分的更细致,也就意味着服务越来越多,项目开发流程中,需要部署的项目会更多,而且很频繁。这样开发人员要花很长的时间去部署,再测试。于是更加自动化的部署、测试工具显得就无比的重要、因此jenkins横空出世,目的就是为了让这些重复繁琐的工作变得自动化,也就是持续集成。实际应用中是和代码仓库配合使用,当仓库某分支有提交代码时触发自动化构建。
Jenkins安装
本文是基于Docker镜像安装Jenkins,其他的安装方式请读者另行查阅资料。
docker搜索jenkins镜像
$ docker serach jenkins
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
jenkins Official Jenkins Docker image 3647 [OK]
jenkins/jenkins The leading open source automation server 780
jenkinsci/jenkins Jenkins Continuous Integration and Delivery … 328
jenkinsci/blueocean https://jenkins.io/projects/blueocean 207
jenkinsci/jnlp-slave A Jenkins slave using JNLP to establish conn… 85 [OK]
jenkinsci/slave Base Jenkins slave docker image 41 [OK]
jenkins/jnlp-slave a Jenkins agent (FKA "slave") using JNLP to … 33 [OK]
jenkinsci/ssh-slave A Jenkins SSH Slave docker image 31 [OK]
cloudbees/jenkins-enterprise CloudBees Jenkins Enterprise (Rolling releas… 30 [OK]
aespinosa/jenkins Sets up a container with jenkins installed l… 22 [OK]
blacklabelops/jenkins Docker Jenkins Swarm-Ready with HTTPS and Pl… 13 [OK]
下载jenkinsci/jenkins镜像
$ docker pull jenkins/jenkins
Using default tag: latest
latest: Pulling from jenkins/jenkins
cc1a78bfd46b: Already exists
d2c05365ee2a: Pull complete
231cb0e216d3: Pull complete
3d2aa70286b8: Pull complete
b621e52d9d65: Pull complete
f12314f6054a: Pull complete
f5ce6397976f: Pull complete
965859e0769b: Downloading [====> ] 12.85MB/134MB
4a76f2995e39: Download complete
37d3ee2694d1: Download complete
651366d1a8e4: Download complete
55793a56060f: Download complete
7818e089879b: Download complete
78c4019c83e7: Download complete
6338504f77b7: Downloading [=====> ] 8.06MB/75.14MB
a7bfb2832840: Download complete
8c34aa5b5c97: Download complete
f88eece329ad: Download complete
4868b8d112bc: Waiting
a98cdc04ca10: Waiting
4c8b27fc9d78:
等待下载完成,ctrl + c
可以中断下载。
启动jenkins
docker run -d -p 9000:8080 -m 1024m jenkinsci/jenkins
7008e5bf33a1feb5283e1430ef697d7e01418763c98fd2d85fdff6efe299ed8e
其中,-d
表示后台运行,-p
本机段端口9000映射容器8080端口,-m
设置运行最大内存为1024m,第二行的字符串表示容器运行的id,接下来的操作容器会用到。
查看启动日志
获取到上面的容器id,使用docker logs
命令查看最后30行日志
$ docker logs 7 --tail 30
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
215046cc8de7437dac6ad1d250eddcb0
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
Jun 26, 2018 3:49:41 AM hudson.model.UpdateSite updateData
INFO: Obtained the latest update center data file for UpdateSource default
Jun 26, 2018 3:49:42 AM hudson.model.DownloadService$Downloadable load
INFO: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
Jun 26, 2018 3:49:42 AM hudson.model.AsyncPeriodicWork$1 run
INFO: Finished Download metadata. 7,058 ms
Jun 26, 2018 3:49:43 AM hudson.model.UpdateSite updateData
INFO: Obtained the latest update center data file for UpdateSource default
Jun 26, 2018 3:49:43 AM jenkins.InitReactorRunner$1 onAttained
INFO: Completed initialization
Jun 26, 2018 3:49:43 AM hudson.WebAppMain$3 run
INFO: Jenkins is fully up and running
--> setting agent port for jnlp
--> setting agent port for jnlp... done
从上面的日志可以知道,jenkins容器已经首次启动成功,并且将登录密码打印出来了。复制这个密码215046cc8de7437dac6ad1d250eddcb0
。
登录访问jenkins
上面指定了本地的端口为9000,于是访问地址为:http://localhost:9000
将上一步复制的密码粘贴进去,即可登录jenkins。
选择安装推荐的插件,点击,下一步
插件正在自动安装,等待完成,下一步
可以填写表单创建一个用户,这里不创建直接右下角,使用admin账户继续。
配置访问路径,这里默认就好,下一步
安装完成,下一步
Jenkins主页面
安装插件
如果上面的步骤中,插件安装失败了,提示无法连接,那就需要梯子或者更换镜像仓库。
这里我们采用比较简单的方式,更换仓库地址来解决插件无法下载安装的问题。
把:http://updates.jenkins-ci.org/update-center.json
换成:http://mirror.esuni.jp/jenkins/updates/update-center.json
通过右上角的搜索框搜索插件,如git、maven,勾选,点击底部按钮直接安装即可。
创建项目
这时即可基于我们安装的Jenkins插件创建一个maven项目,输入项目名 ifast
,选择“构建一个maven项目”,点击确定即可。
总结
通过本章学习,你已经知道了基于docker如何在linux环境下搭建Jenkins环境,并创建一个maven项目。
作者推荐:SSM开源开发框架
ifast是一款基于Spring Boot + Mybatis + Mybatis Plus搭建的快速开发平台。ifast集成了代码生成器,具有高效的开发效率。以Spring Boot为基础框架,Mybatis plus为数据访问层, Apache Shiro为权限授权层,Ehcahe对常用数据进行缓存,基于Bootstrap构建的hplus作为前端框架。
ifast提供了docker方式打包,启动,让部署、维护更加方便。
访问请点击 Java快速开发脚手架 ifast