Linux+Docker+Jenkins+Git自动化部署SpringBoot项目

Docker+Jenkins一键自动化部署 另外用6379端口是因为我阿里云的安全组目前只开了8080端口和6379端口,然后阿里云帐号又用的是别人的号,我这边登录不了。所以暂时没法开放其他端口,所以只能用了和redis相同的6379端口,哈哈。这样,我们以后本地的代码修改后只需要提交至git,然后到Jenkins中点击构建即可重新部署项目。我们运行项目的步骤是,通过Dockerfile构建docker镜像,然后在执行镜像即可。然后,我们就可以看到Jenkins了,现在需要对Jenkins进行解锁。于是,我们都设置完后就可以登录进Jenkins了。 阅读详情

Docker 安装参考 https://blog.youkuaiyun.com/javaJxl/article/details/108978970
Maven 安装参考 https://blog.youkuaiyun.com/javaJxl/article/details/109026923

一、下载启动Jenkins

1、docker下载jenkins

docker pull jenkins

2、创建本地数据卷
我这里映射本地数据卷的路径为/data/jenkins_home/,你想放别的地方可以自行修改

mkdir -p /data/jenkins_home/

需要修改下目录权限,因为当映射本地数据卷时,/data/jenkins_home/目录的拥有者为root用户,而容器中jenkins用户的 uid 为 1000。

chown -R 1000:1000 /data/jenkins_home/

3、启动jenkins

docker run -d --name jenkins -p 8040:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home -v /usr/local/apache-maven-3.6.3:/usr/local/maven --restart=always jenkins

-d 标识是让 docker 容器在后台运行
–name 定义一个容器的名字,如果没有指定,那么会自动生成一个随机数字符串当做UUID
-p 8040:8080 端口映射,8080是本地端口号也就是jenkins的端口号,8040是映射的端口号
-p 50000:50000 端口映射
-v /data/jenkins_home:/var/jenkins_home 绑定一个数据卷,/data/jenkins_home是刚才创建的本地数据卷
-v /usr/local/apache-maven-3.6.3:/usr/local/maven 将宿主机maven绑定到jenkins镜像的/usr/local/maven下

二、配置Jenkins

在这里插入图片描述
这里要求输入初始的管理员密码,根据提示密码在/var/jenkins_home/secrets/initialAdminPassword这个文件中,注意这个路径是 Docker 容器中的,所以我们通过如下命令获取一下

docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
85770376692448b7b6a8e301fb437848

安装默认插件即可
然后创建自己得账户

在这里插入图片描述
Jenkins配置Maven
进入“全局工具配置”,找到“Maven”,MAVEN_HOME 里填 “/usr/local/maven”,就是之前挂在的目录
在这里插入图片描述
maven的setting提供:
在这里插入图片描述
JDK配置(jenkins默认自动带dk1.8)
在这里插入图片描述
查看jdk路径方法
首先进入jenkins镜像内部

docker exec -it jenkins /bin/bash

命令查看路径

echo $JAVA_HOME

在这里插入图片描述

Git配置,jenkins启动时默认插件就有Git,进入容器内部查看git路径

whereis git

在这里插入图片描述

在这里插入图片描述

Maven配置(之前手动安装的maven)
在这里插入图片描述

在插件管理中,安装“Maven Integration plugin”插件,用于在新建任务的时候可以选择“构建一个Maven项目”
在这里插入图片描述
勾选点击下边直接安装,安装后重启jenkins
在这里插入图片描述
重启jenkins方法
在地址栏重启在地址后面直接输入 /restart
在这里插入图片描述
docker重启

docker restart jenkins

三、配置项目

安装maven同样得方法安装ssh插件
在这里插入图片描述
安装完成后返回jenkins首页点击设置配置ssh连接属性
在这里插入图片描述
往下拉找到ssh相关配置
在这里插入图片描述

Name 连接名(自定义)
Hostname linux地址
Username 连接用户名
Remote Directory 数据路径,上传的文件将存到这个路径下
点击高级,勾选 Use password authentication, or use a different key
在 Passphrase / Password 栏填写用户密码
保存即可
在这里插入图片描述

1、git配置

添加一个git的凭据提供者,填写git的账号和密码,然后Credentials选择刚刚添加的凭据者。
在这里插入图片描述
在这里插入图片描述

Build Maven(maven构建项目)
在这里插入图片描述

clean package -Dmaven.test.skip=true

#运行容器
在Post Steps配置ssh命令
在这里插入图片描述

Name 选择刚才创建的ssh连接属性
Source files 资源文件路径,git项目target的路径,我的是test/target,就是拷贝该文件下的所有*.jar文件
在这里插入图片描述

Remove prefix 需要去掉的前缀,去掉test/target,就是只剩下jar包
Exec command 具体的linux命令,我配置的是我需要的参数,自己根据自己路径配置即可
配置完成后点击保存即可
至此jenkins配置完成,下面是linux文件

#进入jar包路径
cd /home/webapps

#执行shell脚本
sh start /home/webapps/test.jar test

下面是我的/home/webapps目录
在这里插入图片描述
在该路径下创建Dockerfile文件,内容如下

# Docker image for springboot file run
# VERSION 0.0.1
# Author: kevin
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER kevin
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为test.jar
ADD test.jar test.jar
# 运行jar包
RUN bash -c 'touch /test.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/test.jar"]

创建docker制作镜像文件start.sh(名字自定义,但是要和你jenkins执行的文件名一直)
在这里插入图片描述

JAR_PATH=$1
IMAGES_NAME=$2
echo "$JAR_PATH"
echo "$IMAGES_NAME"

#判断文件是否存在
if [[ ! -f "$JAR_PATH" ]]; then
 echo "文件不存在"
else
 rm $JAR_PATH
 echo "文件存在"
fi

#判断镜像是否存在
if ps -ef|grep "$IMAGES_NAME"|egrep -v grep >/dev/null
then
 docker stop $IMAGES_NAME
 docker rm $IMAGES_NAME
 docker rmi $IMAGES_NAME
 echo "服务正在运行"
else
 echo "服务未运行"
fi

#拷贝文件到当前文件夹
mv test-0.0.1.jar test.jar

#编译为docker镜像
docker build -t $IMAGES_NAME .

#启动镜像
docker run --name $IMAGES_NAME -itd --net=host --restart=always -v /etc/localtime:/etc/localtime:ro  -v /etc/timezone:/etc/timezone:ro  $IMAGES_NAME

可能遇到的问题
如果项目连接的数据库是docker的mysql可能会有时区问题,解决方法如下
https://www.cnblogs.com/sxdcgaq8080/p/10057385.html

四、构建并启动项目

点击立即构建
在这里插入图片描述
控制台查看构建状态
在这里插入图片描述
success启动成功
在这里插入图片描述
访问项目
在这里插入图片描述
至此自动化部署结束,如果小伙伴没有部署成功遇到问题,可以评论或私信我,我第一时间给大家解答

Jenkins的FreestyleProject发布springboot程序 本次基于Jenkins自由风格项目实现Spring Boot自动化部署的核心要点Git Plugin是基础,缺一不可;关键配置:全局工具(JDK/Maven)+ SSH远程连接(免密)是构建和部署的前提;核心步骤:「源码管理(拉取Git)→构建步骤(Maven打包)→构建后操作(SCP上传+远程命令)」三步完成全流程自动化;通用脚本:远程启动命令增加PID文件管理nohup守护进程,避免服务重复启动和进程挂掉;排查技巧:构建失败优先看控制台输出。 阅读详情

相关推荐

Linux 从0到1部署Jenkins + Docker 实现CICD自动化实战详解

Linux 从0到1部署Jenkins + Docker 实现CICD自动化实战详解

congge 4764

自动化部署实践 (Jenkins+Git+Docker+阿里云k8s)

基于Jenkins+Git+Docker+阿里云k8s,对项目进行自动化部署的实践过程记录,主要说明了Jenkins的流水线脚本以其他一些相关的配置

Step_By_XXX的博客 8258

告别纯代码:用Visual Studio为LabVIEW封装一个‘即插即用’的海康VisionMaster控件

本文介绍如何利用Visual Studio为LabVIEW封装一个‘即插即用’的海康VisionMaster控件,解决传统集成方式中的代码臃肿和维护困难问题。通过.NET控件封装核心功能,实现LabVIEW与VisionMaster的高效对接,显著提升工业自动化开发效率。

weixin_33744854的博客 506

Jenkins+Docker+K8S+Git+CICD自动化部署SpringBoot前后端分离项目

1、构建流程图 自动触发jenkins部署通过svn或Git的hooks来实现,是否自动触发根据项目内部沟通决定,我们目前没有自动触发,原因是QA在测试的过程中不希望被自动触发的部署打断,不过也可以方便的在jenkins上手动触发执行; jenkins从Git拉代码 --> 编译 --> JS/CSS合并压缩 --> 其他初始化操作 --> 生成最终线上运行的代码包,通过Dockerfile打包成镜像上传到docker hub,然后触发kubernetes滚动更新; 镜像包含了基

zouyang920的博客 1892

告别‘火龙’:实测BES2800/RK2108等主流芯片,聊聊AI眼镜的功耗与散热‘内卷’实战

本文深入探讨了AI智能眼镜在功耗与散热方面的挑战,重点分析了恒玄BES2800和瑞芯微RK2108等主控芯片的能效表现。通过实测数据和优化策略,揭示了在6nm工艺、异构计算和系统级散热方案下的实战经验,为AI眼镜的功耗管理提供了实用解决方案。

weixin_30839881的博客 950

MIPI信号的分析--结合示波器实际测试波形

如果排查的思路对你有帮助,请记住 消雨匆匆 or 大吊工。码字和排查很累,仅此而已 ,硬件不是抄电路,拿烙铁,懂点软件,细致分析,找问题和破案搜集线索是一样的。 部分内容来自于此博客的大神总结: http://www.elecfans.com/news/wangluo/20170323499614.html http://www.elecfans.com/yuanqijian/jieko...

消雨匆匆 4万+

搭建Docker+K8S+GitLab+Jenkins+Harbor持续集成交付Springboot环境

文章目录搭建Docker+K8S+GitLab+Jenkins+Harbor持续集成交付Springboot环境(一)实验环境基础环境配置功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 搭建Docker+K8S+GitLab+Je

walkon1007的博客 2万+

Android存储空间不足下,APP出现奔溃等情况

版权声明:本文为博主原创文章,未经博主允许不得转载。 1. 问题起因     实时录制视频,使用getExternalCacheDir()函数返回的路径作为文件缓存区 2. 问题产生     系统在空间不足的情况下第一清除getExternalCacheDir和getCache文件下的缓存,导致正在录制的视频出现Error。 3. 解决方案     第一

OverseasAndroid的博客 4161

jenkins+git+docker+k8s+微服务

项目docker配置结构 jenkins执行脚本 jenkins 需要执行的脚本 clean package -Dmaven.test.skip=true #!/bin/bash -ilex serverName="xxx" serverNamePom="xxx" date=$(date "+%Y%m%d%H%M") imageID=$(docker images | grep $serverName | awk '{print $3}') if [ -n "$imageID" ]; then

练练手 372

Creo模型装配总结

creo7.0的零件装配操作方法,建立基准面、新建约束、约束顺序

heda3的博客 1万+

彻底解决tplink路由器无法访问部分https网站

彻底解决tplink无法访问部分https网站

renkai721的专栏 8767

k8s+Jenkins+GitLab-自动化部署项目

0、目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 此文阅读目录: 1、闲聊 2、部署流程介绍 3、部署Harbor仓库 4、jenkins-slave镜像搭建 5、部署jenkins 6、jenkins+gitlab挂钩 7、k8s部署...

weixin_30299709的博客 737

Arcgis中的模型构建器(ModelBuilder)技术之批量图层转KML

这段时间全省各地都在开展耕地流出图斑整改恢复工作,期间或多或少都需要村委会协助摸排举证,除了举证软件外,奥维、外业精灵等软件想必大家接触得也很多。这就经常需要我们转kmz文件给业主或者摸排人员,那么有没有什么方法在arcgis下快速批量转kmz文件呢,今天就介绍一下如何在模型构建器(ModelBuilder)构建批量图层转KML的模型。

weixin_44671081的博客 1325

Docker安装Jenkins打包Maven项目为Docker镜像并运行【保姆级图文教学】

Jenkins作为CI、CD的先驱者,虽然现在的风头没有Gitlab强了,但是还是老当益壮,很多中小公司还是使用比较广泛的。最近小编经历了一次Jenkins发包,感觉还不错,所以自己学习了一下。网上比较多的教程都是在Linux上搭建Jenkins,小编经过一个星期的探索终于完成了在docker中进行搭建。最终版就是:通过git上传代码—>使用Jenkins构建自动打包—>把jar包打成docker镜像,运行在docker中,Windows下进行访问主要记录一下一些踩过的坑和注意点,让后来人能够跟着小编一次完

小王博客基地 1万+

[STM32F103C8T6]W5500+Modbus TCP(HAL库)

本章节是博主学习Modbus TCP所写的一篇文章Modbus TCP是Modbus的一个分支,主要用到网口通信的,在工业上也用的很频繁,我们公司最近的项目就是用的W5500+modbus TCP来和PC端的上位机通信和交互的。虽然这个项目不是我在写代码,但是我都学了Modbus RTU了,那我也抽空学习一下Modbus TCP吧。本次的Modbus TCP不是博主写的,是一个大佬开源的一个W5500写的一个Mobus TCP代码,我在这个基础上自己写了主机读从机多个数据,和主机写从机寄存器的函数。

sinat_58149788的博客 4086

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Jenkins+Docker+Gitee+SpringBoot自动化部署

当我们使用传统的开发方式开发后台系统时,每写完一个功能点就需要重新运行一下项目,然后进行测试,如果是项目比较小还可以,但是如果项目比较大的话,由于涉及的人员比较多,这种开发方式就比较麻烦。基于此,我们就需要使用Jenkins配合Gitee搭建一个自动化部署平台,并将代码托管到服务器上,这样减轻了本地的电脑压力,也解放了部署的流程。

liuxiangke0210的专栏 332

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Jenkins+Docker+Maven部署springboot项目

Jenkins+Docker+Maven部署springboot项目概述介绍所需条件安装jenkins 概述 你好!在公司实习期间接触到了Jenkins进行自动化项目部署,学习过程中写了个小demo实现,写下这篇文章对过程进行简单记录。 介绍 个人理解jenkins就是辅助项目部署的工具,它的主要功能是通过git拉去写好的代码通过maven进行打包后将jar/war包部署到指定容器内运行。 所需条件 1.一台虚拟机,或服务器,当然也可以是本地电脑(但是这样做明显意义不大)。 2.虚拟机或服务器安装linux

saxasx的博客 849

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【Linux(CentOS 7 )+git+maven+springboot】安装+实现自动化部署项目

在Linux(CentOS 7)服务器上安装git常用命令 删除git: yum remove git 检查git是否安装: git --version 如果没有安装,安装git: yum -y install git 安装git,检查是否安装成功: git --version 配置git SSH: 配置git的user name和email git config --global ...

weixin_42956047的博客 876

Jenkins 自动化部署 SpringBoot 项目配置

Jenkins 自动化部署 SpringBoot 项目配置 文章目录Jenkins 自动化部署 SpringBoot 项目配置前言正文1. 环境准备1.1 安装 Java1.1.1 卸载 OpenJDK1.1.2 下载 Java 8 压缩包1.1.3 设置环境变量1.2 安装 Maven1.2.1 下载 maven1.2.2 配置环境变量1.2.3 maven 源 & 本地仓库配置1.3 安装 Git1.4 安装 Jenkins1.4.1 下载 Jenkins1.4.2 Jenkins 启动配置1.

超悠閒的博客 1390

部署运维

k8s核心概念 igress找servie找port端口号

远行的博客 669

项目部署

项目部署 maven:管理jar包依赖的,但是还有一个更重要的作用,把项目编译打包 maven可以把springboot项目打包成一个jar包(main方法作为入口),然后把这个jar包放到linux(或者windows中),用java -jar命令进行访问,这个过程就是项目部署了 jekins就是帮我们做了这个过程,自动化打包,部署,运行(持续化部署工具),公司里运维去做这个部分 学这个jenkins 1.先演示手动打包 (1)随便一个普通springboot工程(2.2.1.release) (2)把项

qq_44841517的博客 236

Jenkins

Jenkins 文章目录Jenkins1.安装jenkins 1.安装jenkins (1)把jenkins的war包上传到linux系统中 (2)启动war包,使用命令 java –jar. nohup java -jar /usr/local/jenkins/jenkins.war >/usr/local/jenkins/jenkins.out & 启动出现下面界面 再次点击回车 (3)访问jenkins管理页面 使用当前linux系统ip地址:8080端口号 首先进入初始化界面

naumy的博客 363

【Linux】安装Jenkins并且打包发布springboot项目

目前Java最流行的CI/CD工具是Jenkins,问了几个前同事的公司,有很多都在使用它,而我还在本地打包手动上传,所以准备也搞一下。这里我们推荐使用命令安装指定版本,因为随后需要安装maven与git的插件,为了选择最大兼容性,我们选择了2.492.3这个版本。安装后重启,重启后可能就挂了,可以docker ps查看进程是否还在,不在了就docker start jenkins手动起来。进入主界面前需要配一个管理员账号,进入主界面点击系统管控,管理插件,可用插件,搜索chinese,安装中文插件。

wewewecmcm的博客 472

Docker、Jenkins、Git 自动化部署 SpringBoot 项目(从零到搭建完成)

虚拟机相关环境安装可以查考我的这篇文章:https://blog.youkuaiyun.com/wuhuayangs/article/details/125295937?spm=1001.2014.3001.5501安装 Docker 之前查看是否已经安装,可以卸载重新安装。1、列出当前 Docker 相关的安装包 2、如果已经存在,则卸载对应的包 3、最后删除 Docker 目录 安装 Docker 1、检查环境 在 CentOS 7 安装 Docker 要求系统为64位、系统内核版本为 3.10 以上,可以使用以下

养歌的博客 4031

docker Jenkins实现springboot项目自动化部署

1.实现springboot项目自动化部署前需要安装JDK、Maven 、 GIT。 2.使用docker安装的Jenkins,本文在配置Jenkins时遇到了is not a directory on the Jenkins master(but perhaps it exists on some agents)错误,解决错误方法:将本地的maven和java挂载到Jenkins容器。 3.请阅读完全文后再操作。

qq_39566521的博客 1015

SpringBoot + Jenkins + Docker + Git自动化部署

SpringBoot + Jenkins + Git自动化部署 1、Jenkins安装 到Jenkins的官网:http://jenkins.io下载jenkins.war文件 然后将jenkins.war文件上传到Linux服务器,执行jar -jar jenkins.war命令启动Jenkins 在浏览器中输入http://服务器IP:8080访问Jenkins 在页面上如何授权码进入Jenk...

hsg_happyLearning的博客 1108
上一篇: Linux安装maven环境
下一篇: gradle+idea配置阅读Spring源码开发环境(解决jar包下载缓慢问题)
小亮彡
博客等级 码龄7年 6粉丝 22原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值