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,一经查实,立即删除!

相关文章

VMware Num Lock 总自动切换的问题解决

VMware Num Lock 总自动切换的问题解决 0. 问题描述1. 解决方法 0. 问题描述 使用 VMware 虚拟机时,鼠标在 VMware 和主机之间切换时,总是显示 “Num Lock 开” 和 “Num Lock 关” 的提示框。 1. 解决方法 在 VMware 系统中,按 fn num 统…

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…

智能代理四大范式解析

Agent四大范式 在2024年红杉资本人工智能峰会上,著名的人工智能专家吴恩达发表了一场备受关注的演讲,深入探讨了智能代理(agent)的四大范式。这四大范式代表了当前AI技术在不同应用领域中的核心方法和实践,分别是反思(Reflection)、工具使用(Tool Use)、规划(Planni…

特征融合篇 | 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)工具,使用的…

20240520金融读报:旅游强国金融数据要素升级融资性贸易房地产政策变化

1、房地产政策变化:1)刺激买方:降首付,公积金贷款利率下调0.25%,商贷贷款利率不设下限 2)托底卖方:“白名单”贷款项目,覆盖项目建成交付的资金缺口 3)增加卖方&#xff…

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…

鸿蒙应用开发系列 篇五:鸿蒙系统高级开发技术

文章目录 系列文章Web组件通知窗口管理网页图形库(WebGL)媒体安全访问控制用户认证其他网络与连接电话服务数据管理文件管理后台任务管理设备管理系列文章

mysql--数据库表的创建及基础命令

今日目标 表的创建 数据库的数据类型 表的约束 表结构的修改和调整 数据库的权限管理 单表的数据的CRUD sql的一些规范 SQL的分类 SQL脚本注意点 SQL的注释 ISO提出SQL官方注释: 1、多行注释 /* */ 2、当行注释 -- 注释 注意,空格是必不可少的…

微信小程序抓取数据包(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…

公共Mono模块笔记

一、公共Mono的主要作用 让不继承MonoBehaviour的脚本也能 1.利用帧更新或定时更新处理逻辑 2.利用协同程序处理逻辑 3.可以统一执行管理帧更新或定时更新相关逻辑(不管你是否继承MonoBehaviour) 二、基本原理 1.通过事件或委托 管理 相关更新函数(如AddUpdateLis…