jenkins部署springboot项目

jenkins持续集成

1 DockerMaven插件

微服务通过Maven插件自动部署。

基础镜像jdk1.8的制作请参考docker入门。

Maven插件自动部署步骤:

(1)修改宿主机的docker配置,让其可以远程访问

vi /lib/systemd/system/docker.service

其中ExecStart=后添加配置
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

(2)刷新配置,重启服务

systemctl daemon-reload
systemctl restart docker
docker start registry

(3)在工程pom.xml 增加配置

     <build>
        <finalName>appfinalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
            
            <plugin>
                <groupId>com.spotifygroupId>
                <artifactId>docker-maven-pluginartifactId>
                <version>1.2.0version>
                <configuration>
               <imageName>192.168.220.129:5000/${project.artifactId}:${project.version}imageName>
                    <baseImage>jdk1.8baseImage>
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]entryPoint>
                    <resources>
                        <resource>
                            <targetPath>/targetPath>
                            <directory>${project.build.directory}directory>
                            <include>${project.build.finalName}.jarinclude>
                        resource>
                    resources>
                    <dockerHost>http://192.168.220.129:2375dockerHost>
                configuration>
            plugin>
        plugins>
    build>

以上配置会自动生成Dockerfile

FROM jdk1.8
ADD app.jar /
ENTRYPOINT ["java","-jar","/app.jar"]

(5)在windows打开cmd,进入项目pom.xml所在的目录

mvn package

进入pom.xml 所在的目录,输入以下命令,进行打包和上传镜像

mvn docker:build  -DpushImage

执行后,会有如下输出,代码正在上传

jenkins部署springboot项目_第1张图片

(6)进入宿主机 , 查看镜像

docker images

在这里插入图片描述

输出如上内容,表示微服务已经做成镜像

浏览器访问 http://192.168.220.129:5000/v2/_catalog ,输出

{"repositories":["demo3"]}

(7) 启动容器:

docker run -di --name=demo3 -p 50000:50000 192.168.220.129:5000/demo3:0.0.1-SNAPSHOT 

即可访问项目

2 持续集成工具-Jenkins

2.1 什么是持续集成

​ 持续集成 Continuous integration ,简称CI

​ 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。

​ 持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。

持续集成具有的特点:

  • 它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预;
  • 需要有专门的集成服务器来执行集成构建;
  • 需要有代码托管工具支持,我们下一小节将介绍Git以及可视化界面Gogs的使用

持续集成的作用:

  • 保证团队开发人员提交代码的质量,减轻了软件发布时的压力;
  • 持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;

2.2 Jenkins简介

​ Jenkins,原名Hudson,2011年改为现在的名字,它 是一个开源的实现持续集成的软件工具。官方网站:http://jenkins-ci.org/。

​ Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。

​ 特点:

  • 易安装:仅仅一个 java -jar jenkins.war,从官网下载该文件后,直接运行,无需额外的安装,更无需安装数据库;
  • 易配置:提供友好的GUI配置界面;
  • 变更支持:Jenkins能从代码仓库(Subversion/CVS)中获取并产生代码更新列表并输出到编译输出信息中;
  • 支持永久链接:用户是通过web来访问Jenkins的,而这些web页面的链接地址都是永久链接地址,因此,你可以在各种文档中直接使用该链接;
  • 集成E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时告诉你集成结果(据我所知,构建一次集成需要花费一定时间,有了这个功能,你就可以在等待结果过程中,干别的事情);
  • JUnit/TestNG测试报告:也就是用以图表等形式提供详细的测试报表功能;
  • 支持分布式构建:Jenkins可以把集成构建等工作分发到多台计算机中完成;
  • 文件指纹信息:Jenkins会保存哪次集成构建产生了哪些jars文件,哪一次集成构建使用了哪个版本的jars文件等构建记录;
  • 支持第三方插件:使得 Jenkins 变得越来越强大

2.3 Jenkins安装

2.3.1 JDK安装

(1)将jdk-8u171-linux-x64.rpm上传至服务器(虚拟机)

(2)执行安装命令

rpm -ivh jdk-8u171-linux-x64.rpm

RPM方式安装JDK,其根目录为:/usr/java/jdk1.8.0_171-amd64

2.3.2 Jenkins安装与启动

(1)下载jenkins

wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.249-1.1.noarch.rpm

(2)安装jenkins

rpm -ivh jenkins-2.249-1.1.noarch.rpm

(3)配置jenkins

vi /etc/sysconfig/jenkins

修改用户和端口

JENKINS_USER="root"
JENKINS_PORT="8888"
vi /etc/init.d/jenkins

添加如下最后一行(jdk的路径)

candidates="
/etc/alternatives/java

/usr/lib/jvm/java-1.8.0/bin/java

/usr/lib/jvm/jre-1.8.0/bin/java

/usr/lib/jvm/java-1.7.0/bin/java

/usr/lib/jvm/jre-1.7.0/bin/java

/usr/bin/java

/usr/local/java/jdk/bin/java #jdk的安装目录

"

(4)启动服务

systemctl daemon-reload
systemctl start jenkins

(5)访问链接 http://192.168.220.129:8888
jenkins部署springboot项目_第2张图片
按提示找到密码输入, 点击继续
出现该jenkins似乎已离线
jenkins部署springboot项目_第3张图片
点击 跳过插件安装(后边插件全部手动上传安装)
然后创建用户, 下一步, 就到首页

jenkins部署springboot项目_第4张图片
jenkins部署springboot项目_第5张图片
(6)安装插件
点击 系统管理 - 插件管理
jenkins部署springboot项目_第6张图片
然后安装maven插件
jenkins部署springboot项目_第7张图片
安装失败, 这个错误查了很多文章都不管用, 所以点开每个detail 手动下载所有插件, 在插件管理中上传安装(按照失败的顺序安装)
jenkins部署springboot项目_第8张图片
jenkins部署springboot项目_第9张图片
然后搜索git, 安装git插件

修改admin密码(可以不修改, 用创建的账户就行):

find / -name config.xml 
vim /var/lib/jenkins/users/admin_1769376840817810947/config.xml 

#打开该配置文件找到节点
123456加密后:#jbcrypt:$2a 10 10 10MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq
#替换密码,重启 systemctl restart jenkins

完全卸载jenkins(弄错了就卸载重来)

systemctl stop jenkins.service
rpm -qa | grep jenkins
rpm -e 上边查询到的
rm -rf /etc/sysconfig/jenkins.rpmsave
rm -rf /var/cache/jenkins/
rm -rf /var/lib/jenkins/
rm -rf /var/log/jenkins
rm -rf /usr/lib/jenkins

2.5 全局工具配置

2.5.1 安装Maven与本地仓库

(1)将Maven压缩包上传至服务器

http://maven.apache.org/download.cgi  官网下载tar.gz包

(2)解压

tar zxvf apache-maven-3.6.3-bin.tar.gz

(3)移动目录

mv apache-maven-3.6.3 /usr/local/maven

(4)编辑setting.xml配置文件vi /usr/local/maven/conf/settings.xml,配置本地仓库目录,内容如下

仓库地址
/usr/local/repository

阿里镜像仓库
                                  
		alimaven
		aliyun maven
		http://maven.aliyun.com/nexus/content/groups/public/
		central
	

2.5.2 全局工具配置

选择系统管理,全局工具配置
jenkins部署springboot项目_第10张图片

(1)JDK配置

jenkins部署springboot项目_第11张图片
(2)Git配置 (本地已经安装了Git软件)
jenkins部署springboot项目_第12张图片
git安装

	yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
	yum install git
	whereis git 
	git --version

(3)Maven配置
jenkins部署springboot项目_第13张图片

2.6 任务的创建与执行

(1)回到首页,点击新建按钮 .如下图,输入名称,选择创建一个Maven项目,点击OK

jenkins部署springboot项目_第14张图片
选择git, 填写项目地址
jenkins部署springboot项目_第15张图片
填写pom.xml的位置, 填写命令, 用于清除、打包,构建docker镜像

clean package docker:build -DpushImage

jenkins部署springboot项目_第16张图片
点击save, 执行任务
jenkins部署springboot项目_第17张图片
jenkins部署springboot项目_第18张图片
构建成功, 服务器上就能看到镜像了

你可能感兴趣的:(部署,docker,linux,maven,git,java)