Docker搭建Jenkins并配置Maven/Gradle编译工具(Jenkins系列 一)
一、简介
1、Jenkins
概述: Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。 目的: 持续、自动地构建/测试软件项目。 监控软件开放流程,快速问题定位及处理,提示开放效率。 特性: 开源的java语言开发的持续集成工具,支持CI,CD。 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。 分布式构建:支持Jenkins能够让多台计算机一起构建/测试。 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。 丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。
2、Maven、Gradle
概述:
Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理,是一个自动化构建工具。Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 Gradle是一个基于Apache Ant和ApacheMaven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。
自动化构建工具:将原材料(java、js、css、html....)->产品(可发布项目)编译-打包-部署-测试 -> 自动构建
maven和gradle的比较:(具体的比较可以百度,这里没有详细介绍)
都是java程序的构建工具
1、可扩展性
gradle够灵活。一方面是因为gradle使用的是groovy或者kotlin语言作为脚本的编写语言,这样极大的提高了脚本的灵活性,但是其本质上的原因是gradle的基础架构能够支持这种灵活性。
相对而言,maven的灵活性就差一些,并且自定义起来也比较麻烦,但是maven的项目比较容易看懂,并且上手简单。
所以如果你的项目没有太多自定义构建需求的话还是推荐使用maven,但是如果有自定义的构建需求,那么还是投入gradle的怀抱吧。
2、性能
Gradle和Maven都支持并行的项目构建和依赖解析。但是gradle的三个特点让gradle可以跑的比maven快上一点:
增量构建
构建缓存
gradle守护进程
3、搭建前环境准备
1、docker环境,192.168.1.20 2、nginx服务器 192.168.1.10 3、镜像版本:jenkins/jenkins:2.289(建议安装的时候选择最新版本,因为不是最新版Jenkins插件需要单独解决,浪费时间)
4、maven版本(3.5.4)
二、Docker搭建Jenkins
1、docker启动jenkins容器
mkdir -p /server/docker/jenkins/jenkins_home #创建配置文件映射目录 cd /server/docker/jenkins chmod -R 777 jenkins_home #为目录授权
启动Jenkins容器:
docker run --name jenkins -p 8081:8080 -p 50000:50000 -u root --privileged=true \
-v /server/docker/jenkins/jenkins_home:/var/jenkins_home \
-itd jenkins/jenkins:2.289
-u root: 指定以root身份运行
--privileged=true: 让container内的root拥有真正的root权限
访问:http://192.168.1.20:8081
2、添加nginx域名访问
server { server_name jenkins.test.com; listen 80; location / { proxy_pass http://192.168.1.20:8081; } }
访问页面:http://jenkins.test.com
3、jenkins加速下载插件(替换插件源地址)
cd $jenkins_home/ sed -i 's#https://updates.jenkins.io/update-center.json#http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json#g' hudson.model.UpdateCenter.xml cd $jenkins_home/updates 替换插件源地址: sed -i 's#https://updates.jenkins.io/download#http://mirrors.tuna.tsinghua.edu.cn/jenkins#g' default.json 替换谷歌地址: sed -i 's#http://www.google.com#http://www.baidu.com#g' default.json
4、页面安装、配置jenkins
解锁jenkins,根据界面提示的路径查看密码,复制到输入框,点击“继续”,点击安装推荐插件(安装git、汉化插件等)
可以创建用户,也可以点击“admin账户继续”,进入界面后自己修改admin密码。
根据提示jenkins搭建完成。
5、插件安装
系统管理——>插件安装——>可安装插件:
Locale 汉化插件(如汉化不完全,下载此插件)
Maven Integration 构建maven项目插件
Publish over SSH 使用ssh免密登录到目标服务器
Deploy to container 用于部署war程序到tomcat中
git parameter 选择指定分支进行构建的功能
JDK Parameter 可以指定一组可作为构建参数选取的JDK
安装完插件,需要重启jenkins才生效。
6、在jenkins页面添加jdk、git、maven、gradle配置
注: java、git的版本以及存放位置可以在jenkins容器中看到:
eg:docker exec -it jenkins /bin/bash java -version,which java,git --version,which git
配置maven:(选择自动安装maven)
配置gradle:
三、在Docker容器中更新Jenkins版本
#如果jenkins版本太老,可以在不影响jenkins项目的情况下,更新jenkins版本
1.以root用户进入jenkins容器 docker exec -it -u root jenkins /bin/bash 2.在容器中下载jenkins的最新war包 wget http://mirrors.jenkins.io/war/latest/jenkins.war 3.查看容器中jenkins war包的位置,并备份原来的war包 whereis jenkins cd /usr/share/jenkins cp jenkins.war jenkinsBAK.war 4.将/var/jenkins_home下的包cp到/usr/share/jenkins下覆盖 cp /var/jenkins_home/jenkins.war /usr/share/jenkins/ 5.退出容器并重启 exit docker restart jenkins
环境搭建基本完成,可以构建maven项目,也可以构建gradle项目,根据开发人员的需要来。
构建项目的配置在后面的文章:
Docker搭建Jenkins+git+Maven/Gradle实现自动化部署
原文链接:https://www.cnblogs.com/cfzy/p/14945675.html
愿你不卑微,不讨好,不委屈,不将就。
作者:等风来~~
本博客所有文章仅用于学习、研究和交流目的,欢迎转载。
如果觉得文章写得不错,或者帮助到您了,请点个赞。
如果文章有写的不足的地方,请你一定要指出,因为这样不光是对我写文章的一种促进,也是一份对后面看此文章的人的责任。谢谢。