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、搭建前环境准备

1docker环境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

 

愿你不卑微,不讨好,不委屈,不将就。

 

posted @ 2021-06-30 11:04  等风来~~  阅读(1511)  评论(0编辑  收藏  举报