4
回顾:上一文对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登录

将上一步复制的密码粘贴进去,即可登录jenkins。

插件安装选择

选择安装推荐的插件,点击,下一步

插件安装

插件正在自动安装,等待完成,下一步

创建用户

可以填写表单创建一个用户,这里不创建直接右下角,使用admin账户继续。

图片描述

配置访问路径,这里默认就好,下一步

图片描述

安装完成,下一步

图片描述

Jenkins主页面

安装插件

如果上面的步骤中,插件安装失败了,提示无法连接,那就需要梯子或者更换镜像仓库。
这里我们采用比较简单的方式,更换仓库地址来解决插件无法下载安装的问题。

1.jenkins->系统管理->管理插件->高级
图片描述

把:http://updates.jenkins-ci.org/update-center.json
换成:http://mirror.esuni.jp/jenkins/updates/update-center.json

2.jenkins->系统管理->管理插件->可选插件
图片描述

通过右上角的搜索框搜索插件,如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


Aron
858 声望102 粉丝

搞过c/c++, 玩过c#,正在撸java。