【Docker】Docker安装Jenkins一键自动化部署SpringBoot项目使用详解
创始人
2024-06-03 20:50:57
0

前言

本次讲解的Docker如何安装Jenkins,如果还没有安装Docker的,可以去看一下我安装Docker的文章。

安装Jenkins

Jenkins中文官网

启动命令

docker run -u root -d \
-p 8080:8080 -p 50000:50000 \
-v /var/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /etc/localtime:/etc/localtime \
--name jenkins \
--privileged=true \
--restart=always \
jenkins/jenkins:lts

自己要先看一下 8080端口有没有被占用了,占用了要么就关闭端口,要么就启动的时候换端口号。

访问

先查看容器是否启动起来。

docker ps

启动成功之后,一般访问地址为 {所在服务器ip}:8080,能看到一个老管家说明就成功啦。

在这里插入图片描述

在这里插入图片描述

我们从图里的文字可以得到,我们要想知道这个密码就得去指定的目录底下去找,由于刚才我们docker启动挂载的时候挂载了 /var/jenkins_home:/var/jenkins_home,所以我们在当前服务器上也可以直接找对应目录。

cat /var/jenkins_home/secrets/initialAdminPassword

如果你没有挂载,那你就要进入容器里面去查看了。

#进入你的容器里
docker exec -it 你的容器名 bash
#执行框里的路径
cat /var/jenkins_home/secrets/initialAdminPassword

在这里插入图片描述

安装插件

跳出当前下面这个面板的时候,直接选左侧的按钮,新手不用去管那些,我们只要会部署就行了。

在这里插入图片描述

此外我们还需要安装以下三个插件

  • Maven Integration (编译源代码要用的)
  • Publish Over SSH
  • 如果使用Gitee 码云,安装插件Gitee(Git自带不用安装)

创建管理员账户

这个就自行创建一个,此处省略,创建好了之后点击保存。然后下一步就会重启jenkins。

在这里插入图片描述

配置中文

有些看不懂英文的同志们可以看到这里,其实就是装两个插件完事。

  • Locale
  • Localization:Chinese(Simplified)

配置Maven

在进入系统界面后,找到【系统管理】-》【全局配置】,往下拉会找到一个专门是Maven的面板。

在这里插入图片描述

在这里插入图片描述

这里如果你点自动安装也可以,但是这就你自己电脑配置maven一样,不设置setting.xml就是使用官方的仓库,巨慢无比。要注意的是,你时刻要注意当前jenkins我们是用容器启动的,唯一与外界挂载的是/var/jenkins_home,别自己随便在当前宿主机上的某个路径下扔个maven。

配置JDK

有时候你的Jenkins安装版本太高,默认的JDK11或者更高,但是你的项目是JDK8写的,我们想用自己的JDK来编译项目是否可以,答案是可以的,配置JDK跟配置Maven差不多,都在一个地方。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试部署

我们在配置之前,先准备一个最简单的SpringBoot项目,啥也不用装,只要能启动起来,调用接口能测通就行。

在这里插入图片描述

在这里插入图片描述

新建任务

在这里插入图片描述

在这里插入图片描述

  • 源码管理

    首先我们肯定要先找到项目的源代码,都没有源代码,Jenkins上哪给你编译项目。所以我们要配置一下git,估计SVN的应该要加插件可能,这里暂时先用默认的git来讲解。楼主是用的gitee,你们用github也可以,反正就是把.git链接复制过来,然后账号密码填上能让Jenkins拉下来代码就可以了。

    在这里插入图片描述

  • 构建环境

    在这里插入图片描述

这时候我们点击底部【应用】-【保存】。先不着急看最终的效果,一步一步来,我们既然已经配置了源码的来源和构建的环境,按理说这时候点击构建的话,Jenkins应该会帮我们编译出jar包。我们回到首页,点击构建。

在这里插入图片描述

在这里插入图片描述

如果你刚才按照我的步骤一路下来,那么你们在Jenkins的HOME目录中会看到这样的一个工作目录。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

发现有我们编译好的jar包。至此其实我们已经成功了90%,其实Jenkins的部署到这一步已经完成了大部分的功能,相信大家如果操作下来的话,也能慢慢体会Jenkins的一些好处,就是代替我们去做以前可能一直用手动的形式做的一些部署工作。

运行项目

如果你操作了上面的步骤之后,你这时候会得到一个jar包,但是你不要高兴太早,我们要时刻注意,这时候的jar包其实是在内部,虽然挂载到了外部的宿主机目录上,但是Jenkins本质还是在容器里运行。所以我们接下来有两种思考的方向。

  • 容器里运行

    这个容器里运行的大致意思是说我们继续在任务的配置中完善配置,在maven编译打包好项目之后,我们使用shell命令,因为Jenkins中有Java环境,所以直接使用java -jar 启动项目。但是这里有一个不好的地方,那就是如果你这么做了,试想一下,那你启动Jenkins容器的时候要不要把这个项目的端口号暴露出去,如果不暴露,又该怎么访问,难道后续每增加一个项目,Jenkins都要重启 多暴露一个端口么?所以在容器里运行这个方案放弃,而且退一万步说,当初使用容器的初衷就是一个容器干一件事情,所以这个方案否决。

  • 容器外运行

    那既然容器里运行不行了,那容器外运行咋搞。这时候我们就要想到SSH了,利用SSH将这个jar包送到指定的服务器(包括你启动Jenkins容器所在的服务器上),这样不就得了,jenkins只负责最后送出去之后,然后你在服务器上想对这个jar包做什么操作就做什么操作。嗯,这个方案灰常的不错。

配置SSH

刚才我们已经选择了方案2:容器外运行。所以接下来我们配置好SSH就可以了,我这呢是直接使用服务器的账号密码配置,如果想用公钥私钥配置SSH也是支持的,你们百度一下就可以了,我就不那么麻烦了,反正原理都差不多,目的就是配置好宿主机的SSH。SSH插件还没安装的,赶紧去插件管理上装,别又找不到配置项。
在这里插入图片描述

在这里插入图片描述

回到任务

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

我们再次点击保存后,点击构建测试,到底这个jar包有没有被送到目标服务器上。

 #切换到路径cd /home/workspace/springboot_2#查看ls

在这里插入图片描述

这个jar包果真被我们送到指定地方了,这样就简单了,我们只要想办法把这个jar包运行起来不就得了。但是直接运行好像又不太行,毕竟如果再次运行还要考虑把上一次运行的PID找到然后杀死。这时候其实很多人就想到了以前在百度上找的那种restart.sh脚本,通过启动脚本的方式可以自动启动对应的jar包,做到平滑启动。当然了这个方式挺好的,但是我想到一个更好的方式,连脚本都不用写。既然我们都会用docker了,那还不如直接pull一个带jdk8环境的镜像,然后先第一次启动一下,把挂载目录设置好,然后启动起来,然后Jenkins推送jar包的时候只要推送到挂载目录上,这样以后只要加一个docker restart 动作不就完事,啊哈哈哈哈,其实这一招我是从我经理那学来的。

docker run -itd  \
--name springboot_2 \
-v /home/workspace/springboot_2:/home/workspace/data \
-p 8091:8080 java:8u111 \
java -jar /home/workspace/data/demo-0.0.1-SNAPSHOT.jar

在这里插入图片描述

当容器可以正常启动之后,我们发现可以正常访问,那么我们只要把docker restart 配置到jenkins中,让jenkins帮我们SSH之后,加一个动作,帮我们restart。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

至此,完结撒花!!!!!帮助到你的话,请点赞收藏评论哈!!!!!

相关内容

热门资讯

知识库系统 安卓,架构、组件与... 哇,你知道吗?在这个信息爆炸的时代,拥有一款强大的知识库系统,就像是拥有了随身携带的智慧大脑!今天,...
安卓系统手机手表,智能手表选购... 你有没有想过,你的手机和手表之间,其实可以有个更亲密的伙伴关系呢?没错,就是安卓系统手机和智能手表!...
安卓xp系统下载软件,下载与安... 你有没有想过,在小小的手机屏幕上,也能重温那个经典的Windows XP系统呢?没错,就是那个曾经陪...
桌面安卓变苹果系统,安卓手机变... 你知道吗?最近在科技圈里掀起了一股不小的风潮,那就是桌面安卓系统摇身一变,竟然变成了苹果系统!是不是...
召唤抽奖系统安卓送信,一键生成... 你知道吗?现在市面上有一种特别火的召唤抽奖系统,它可是让无数安卓用户都为之疯狂呢!想象只需轻轻一点,...
安卓原生系统 充电模块,技术革... 你有没有发现,现在手机充电速度简直就像赛跑一样,谁快谁就赢了!不过,你知道吗?安卓原生系统里的充电模...
安卓系统网络用于程序,构建高效... 你有没有想过,你的安卓手机里那些可爱的应用程序,其实都是通过网络来“呼吸”的呢?没错,就是那个看不见...
软件杯安卓系统杀死,软件杯如何... 你知道吗?在软件界,有一个盛大的比赛叫做“软件杯大赛”,它可是程序员们展示才华的舞台。而在这个舞台上...
安卓系统如何录入nfc,轻松掌... 你有没有想过,你的安卓手机里那个神秘的NFC功能到底怎么用呢?别急,今天就来给你详细揭秘,让你轻松掌...
安卓系统怎么延时拍照,轻松捕捉... 想要记录下那些慢慢变化的美景,却苦于手机拍照总是慢半拍?别急,今天就来教你怎么在安卓手机上轻松实现延...
安卓系统手机混淆软件,安全防护... 你有没有发现,现在手机里的APP越来越复杂了?点开一个APP,里面的功能多得让人眼花缭乱,但你知道吗...
magic3系统安卓,探索智能... 你有没有用过荣耀Magic3手机呢?这款手机自从发布以来,就一直是科技圈的热门话题。今天,就让我带你...
安卓系统能拷贝吗,安卓系统文件... 你有没有想过,你的安卓手机里那些珍贵的照片、视频和文件,是不是也能像变魔术一样,从一个地方“飞”到另...
安卓设置gps定位系统,精准导... 亲爱的手机控们,你们有没有想过,你的安卓手机里那个神秘的GPS定位系统到底是怎么工作的呢?今天,就让...
安卓系统能刷ce系统吗,安卓系... 你有没有想过,你的安卓手机是不是也能像那些高端机型一样,刷上CE系统呢?这可不是天方夜谭,今天就来给...
小米升级安卓系统9.0,全面体... 哇,亲爱的手机控们,你们有没有发现,最近小米的安卓系统升级可是风头十足呢!没错,就是那个让我们的手机...
kodi支持安卓4.4系统,兼... 亲爱的读者们,你是否曾想过,在小小的安卓4.4系统上,也能享受到Kodi带来的无限乐趣呢?今天,就让...
安卓车载系统设置失灵,诊断与修... 亲爱的车主朋友们,你们的车载系统是不是也闹起了小脾气,设置失灵了呢?别急,今天就来给大家详细解析一下...
安卓系统的安全设置,全面解析与... 你知道吗?在这个信息爆炸的时代,手机已经成了我们生活中不可或缺的好伙伴。但是,随着手机功能的日益强大...
ns安卓系统跑分,性能与优化的... 哎呀呀,你有没有想过,你的手机里那个小小的安卓系统,竟然能跑出那么高的分数?没错,就是那个我们每天离...