2024最新 Jenkins + Docker 实战教程(四) - 编写自己的Springboot项目实现自动化部署

在这里插入图片描述

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志
🎐 个人CSND主页——Micro麦可乐的博客
🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战
🌺《RabbitMQ》本专栏主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战
🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解
💕《Jenkins实战》专栏主要介绍Jenkins+Docker+Git+Maven的实战教程,让你快速掌握项目CI/CD,是2024年最新的实战教程
如果文章能够给大家带来一定的帮助!欢迎关注、评论互动~

Jenkins + Docker + Git + Maven 实战教程(四) - 编写自己的Springboot项目实现自动化部署

  • 前言
  • 构建前准备
  • 开始配置Jenkins
  • 构建测试
  • 结语

前言

上一章节中虽然我们实现了自动化的部署,但是官方的DEMO中并没有Dockerfile文件,我们还是需要手动构建,本章节我们自己编写一个简单的SpringBoot项目实现自动化部署,从代码编写到上传Gitee再到Jenkins自动化部署。

整体流程如下:

在这里插入图片描述

构建前准备

在开始Jenkins自动化部署前,我们需要执行如下操作

1、注册Gitee账号
2、创建Git仓库
3、IDEA安装Gitee插件
4、Gitee插件配置账户信息
5、IDEA创建SpringBoot项目
6、SpringBoot项目编写Dockerfile文件
7、get push项目到Gitee

注册Gitee账号以及创建仓库这里我们就忽略了

博主以Mac为例,找到 IntelliJ IDEA - Preferences - Plugins 搜索gitee安装插件
在这里插入图片描述
Gitee插件配置账户信息,可以选择授权登陆以及账号密码登陆等,大家根据情况自行选择
在这里插入图片描述
创建一个简单的SpringBoot项目
在这里插入图片描述
项目根目录创建Dockerfile文件

FROM openjdk:11
# 设置工作目录
WORKDIR /app
# 将宿主机的目录挂载到容器的/app目录
VOLUME /app
# 复制.jar文件到工作目录
COPY jenkins-demo-project-0.0.1-SNAPSHOT.jar /app/jenkins-demo.jar
# 设置容器启动时执行的命令
CMD ["java", "-jar", "jenkins-demo.jar" ,"--server.port=9090"]

调整pom.xml设置maven将Dockerfile一并打包到target目录下
在这里插入图片描述
最后通过IDEA提交代码到Gitee仓库
由于博主的仓库是公开的,小伙伴们也可以直接使用博主的demo 【仓库地址】

开始配置Jenkins

找到左侧菜单 - 新建任务 - jenkins-demo
在这里插入图片描述
创建完成后,点击对应任务进入
在这里插入图片描述
在左侧找到配置
在这里插入图片描述
配置Git Repository URL
在这里插入图片描述
找到 Post Steps 选项,,选择仅构建成功执行
在这里插入图片描述
设置我们的sell命令,需要判断对应容器是否存在,存在则需要停止并删除

# 默认操作在Jenkins工作目录下的项目名目录 即 workspace/jenkins-demo/target
cd target
#构建镜像
docker build -t jenkins-demo .
# 使用docker ps和grep来检查容器是否存在
if docker ps -a | grep "my-jenkins-demo" > /dev/null; thenecho "容器存在"#容器存在则停止并删除容器docker stop my-jenkins-demodocker rm my-jenkins-demo
elseecho "容器不存在"
fi
#运行容器
docker run -d -p 9090:9090 --name my-jenkins-demo jenkins-demo

注意
上一章节我们已经处理了将宿主机的Docker引擎挂载到Jenkins容器上,即Jenkins容器调用宿主机的Docker
如果你没有看过上一章教程 可以点击 查看上一章内容

构建测试

配置完成,点击左侧立即构建,在下方的构建历史点击对应构建编号进入查看控制台输出
在这里插入图片描述
输出如下
在这里插入图片描述
测试访问
在这里插入图片描述

结语

本章节从创建SprongBoot项目 -> 上传gitee -> Jenkins自动化部署进行演示,小伙伴们可以跟着博主的教程操作自己走一遍,过程中如果出现其它问题,欢迎留言大家一起交流!

下一章节:2024最新 Jenkins + Docker 实战教程(五) - 配置Webhooks实现自动构建及运行项目


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/13636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

0407放大电路的频率响应

放大电路的频率响应 单时间常数RC电路的频率响应中频响应高频响应低频响应全频域响应 放大电路频率响应概述1. 直接耦合放大电路频域响应阻容耦合放大电路频域响应 4.7.1 单时间常数RC电路的频率响应 4.7.2 放大电路频率响应概述 4.7.3 单级共射极放大电路的频率响应 4.7.4 单级…

TOSHIBA UTLH21 属于Unifi NV系列

TOSHIBA UTLH21 是东芝推出的一款工业控制器,属于Unifi NV系列。 这款控制器代表了东芝在工业自动化领域的一次重要进步,它在功能和性能上都超越了现有的V系列控制器。以下是UTLH21的一些主要特点: 高速逻辑与控制能力:UTLH21具…

Spring框架中获取方法参数名称:DefaultParameterNameDiscoverer

DefaultParameterNameDiscoverer 是Spring框架中用于获取方法参数名称的一个类。在Java中,方法的参数名称通常在编译时会丢失,因为Java字节码并不强制要求保留这些信息。Spring提供了一种机制来恢复这些参数名称,这就是通过DefaultParameterN…

IT行业的现状与未来趋势

这里写目录标题 一、引言二、IT行业的现状三、IT行业面临的挑战四、IT行业的未来趋势五、结论 一、引言 信息技术(IT)行业在过去几十年中经历了飞速发展,从早期的计算机硬件和软件开发,到如今涵盖云计算、人工智能、大数据、物联…

深度学习之基于Django+Tensorflow卷积神经网络实时口罩检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 随着全球疫情的持续,佩戴口罩成为了公众日常生活中不可或缺的一部分。特别是在人员密集的…

【python】python社交交友平台系统设计与实现(源码+数据库)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

BEVFuison测试全过程记录

cuda版本10.1 pytorch: 根据cuda版本选择pytorch版本: 1. 创建conda虚拟环境: conda create -y --name mmcv python3.8 conda activate mmcv2. 安装依赖库: pytorch: conda install pytorch1.7.1 torchvision0.8.2 torchaudi…

特征融合篇 | YOLOv8改进之引入轻量级跨尺度特征融合模块CCFM | 源自RT-DETR

前言:Hello大家好,我是小哥谈。CCFM(Cross-Scale Feature Fusion Module)即为跨尺度特征融合模块。这个模块的作用是将不同尺度的特征通过融合操作整合起来,以增强模型对于尺度变化的适应性和对小尺度对象的检测能力。CCFM可以有效地整合细节特征和上下文信息,从而提高模…

2024定制版抢单支付系统源码(开代理自动抢单接单)

随着网络和移动支付技术的不断进步,抢单支付系统已经成为商家和用户进行交易的便利工具。2024定制版抢单支付系统源码为开发者提供了一个可定制化的解决方案,具备开放代理和自动抢单接单功能,帮助用户快速搭建抢单支付平台。本文将为您介绍这…

专题汇编 | ChatGPT引领AIGC新浪潮(一)

ChatGPT的产生与迭代 2022年11月末,美国人工智能研究实验室OpenAI推出ChatGPT。上线的ChatGPT只用了2个月,活跃用户数就突破了1亿,创造了应用增速最快的纪录。 ChatGPT是什么 ChatGPT是一种人工智能技术驱动的自然语言处理(Natural Language Processing,NLP)工具,使用的…

RS8751XF功能和参数介绍及PDF资料

以下是关于RS8751XF的功能和参数的介绍: 功能描述: 高速、宽带单通道运算放大器 轨到轨输入和输出,确保较大的动态范围 极高的增益带宽乘积(GBW):250 MHz,适合高频应用 极高的压摆率(SR&#xf…

MySQL的ODBC驱动下载、安装以及配置数据源

下载地址:odbc官方下载地址 MySQL :: Download Connector/ODBC 下载安装ODBC驱动 配置MySQL ODBC 数据源 进入控制面板->系统和安全->Windows工具 Data Source Name填写需要生成的ODBC数据源的名称。Description选填。如果使用远程数据库服务器&a…

微信小程序抓取数据包(Proxifier联动burpsuite)

1、打开bp,确保开启127.0.0.1:8080监听地址。 2、点击setting--proxy,点击impor CA certificate,生成bp的证书。 保存到桌面为1.cer,文件后缀为cer就OK了,前缀任意 3、安装证书,双击打开刚刚生成…

BERT系列算法解读

1.bert训练的方法 为了训练BERT模型,主要采用了两种方法:掩码语言模型(Masked Language Model, MLM)和下一个句子预测(Next Sentence Prediction, NSP)。 方法一:掩码语言模型(Mask…

优化电源设计:反激二极管选择与注意事项

反激二极管也被称为续流二极管、缓冲二极管、抑制二极管、钳位二极管或换向二极管,是一种电子元件,通常应用在开关电源和其他涉及电感性负载的电路中。它的主要功能是保护电路,防止感性负载在开关断开时产生的反激电压(或反电动势…

DOS学习-目录与文件应用操作经典案例-xcopy

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 一.前言 xcopy命令是DOS系统中一个强大的文件和目录复制工具&…

MySQL——表的约束

表约束 一、概念 ​ 表中一定要有各种约束,通过各种约束使得未来插入到数据库中的数据是合法的,在语法上是没有问题的; ​ 约束本质就是通过技术手段,倒逼着程序员插入正确的数据,换句话说就是,插入进来…

6个精品免费wordpress模板下载

要找到视觉效果非常出色的WordPress模板,我们可以从多个角度来考虑。根据《Smashing WordPress Themes: Making WordPress Beautiful》一书,WordPress不仅仅是一个博客平台,它还能被用来创建各种风格的网站,从企业网站到摄影画廊等…

洗地机哪个牌子好?全面评测多款口碑洗地机

洗地机的出现,让人们摆脱了每天打扫卫生的繁琐,因为它只需轻轻一推,就能把扫地、拖地、擦地的活全做了,干垃圾湿垃圾统统都能一次清理干净,操作简单,更轻松。本文主要分享一些挑选洗地机的技巧,…

大数据运维学习笔记之Ambari——筑梦之路

原则:分布式存储和分布式计算分开 今天就到这里啦。