jenkins使用Jenkinsfile部署springboot+docker项目

文章目录

  • 前言
  • 一、前期准备
  • 二、编辑构建文件
  • 二、Jenkins构建
  • 总结


前言

前面使用Jenkinsfile部署了前端vue项目,接着学习Jenkinsfile部署springboot项目。


一、前期准备

已经安装好centos,并且安装了jenkins和docker。本地新建springboot并上传到gitee上。

二、编辑构建文件

打开本地工程,新增docker文件夹,新增Dockerfile文件
在这里插入图片描述
内容如下:

# jre基础环境
FROM openjdk:8-jre-alpine# 维护者信息
MAINTAINER zhy# 设置环境变量-运行时也可传参进来哈
ENV JAVA_OPTS ""# 添加jar包到容器中 -- tips: xx.jar 和 Dockerfile 在同一级
ADD *.jar /home/app.jar# 对外暴漏的端口号
# [注:EXPOSE指令只是声明容器运行时提供的服务端口,给读者看有哪些端口,在运行时只会开启程序自身的端口!!]
EXPOSE 8080# 以exec格式的CMD指令 -- 可实现优雅停止容器服务
# "sh", "-c" : 可通过exec模式执行shell  =》 获得环境变量
CMD ["sh", "-c", "echo \"****** 运行命令:java -jar ${JAVA_OPTS} /home/app.jar\"   &   java -jar ${JAVA_OPTS} /home/app.jar"]

在根目录新增Jenkinsfile文件
在这里插入图片描述
内容如下:

pipeline {agent anyenvironment {APP_NAME = 'executor-test'APP_IMAGE = 'executor-test'APP_PORT = 9999}stages {stage('环境准备') {steps {sh """# maven打包mvn clean install -DskipTests# 拷贝jar到docker目录下cp target/executor-test-0.0.1-SNAPSHOT.jar docker"""}}stage('构建Docker镜像') {steps {sh """# 删除旧容器docker ps -a | grep ${APP_NAME} | awk '{print \$1}' | xargs -i docker stop {} | xargs -i docker rm {}# 删除旧镜像docker images | grep ${APP_NAME} | awk '{print \$3}' | xargs -i docker rmi {}# 进入Docker目录cd docker# 构建镜像docker build -f Dockerfile -t ${APP_IMAGE} . --no-cache"""}}stage('运行容器') {steps {sh """docker run -d -p ${APP_PORT}:8080 --restart=always --name ${APP_NAME} ${APP_IMAGE}"""}}}
}

提交代码到gitee上,注意文件中的地址要与你自己项目的一致。

二、Jenkins构建

登录jenkins新建任务
在这里插入图片描述
添加描述信息
在这里插入图片描述
流水线选择SCM
在这里插入图片描述
选择git
在这里插入图片描述
粘贴gitee中项目地址,选择凭证,如果没有凭证,点击添加即可。
在这里插入图片描述
点击保存,立即构建
可查看控制台日志输出
在这里插入图片描述
这里遇到了一个错误,打包的镜像名称不能用大写
在这里插入图片描述
修改Jenkinsfile文件
在这里插入图片描述
提交代码,接着构建
在这里插入图片描述
构建成功,打开浏览器访问接口测试
在这里插入图片描述


总结

以上就是今天要讲的内容,本文介绍了jenkins使用Jenkinsfile部署springboot项目。

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

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

相关文章

使用ESM3蛋白质语言模型进行快速大规模结构预测

文章目录ESM3介绍ESM3在线使用本地使用api批量预测ESM相较于AlphaFold的优势ESM3介绍 ESM3是由EvolutionaryScale(前Meta团队)开发的一款蛋白质大语言模型,于2025年以《用语言模型模拟 5 亿年的进化》为题正式发表在Science上 文章链接: htt…

PostgreSQL 时间/日期管理详解

PostgreSQL 时间/日期管理详解 引言 PostgreSQL是一款功能强大的开源关系型数据库管理系统,在时间/日期管理方面具有独特的优势。本文将详细介绍PostgreSQL中时间/日期数据类型及其相关功能,帮助读者更好地理解和应用时间/日期管理。 时间/日期数据类型 …

Agent篇

Agent包含哪些模块,实现了什么功能Agent 就像一个多功能的接口,它能够接触并使用一套工具。根据用户的输入,Agent会规划出一条解决用户问题的路线,决定其中需要调用哪些工具,并调用这些工具。Agent 大语言模型规划记忆…

利用 MySQL 进行数据清洗

利用 MySQL 进行数据清洗是数据预处理的重要环节,以下是常见的数据清洗操作及对应 SQL 示例:1. 去除重复数据使用 ROW_NUMBER() 或 GROUP BY 识别并删除重复记录。-- 查找重复记录(以 user_id 和 email 为例) WITH Duplicates AS …

【MySQL笔记】事务的ACID特性与隔离级别

目录1. 什么是事务?2. 事务的ACID特性(重要)3. 事务控制语法4. 隔离级别与并发问题1. 什么是事务? 事务(Transaction)是由一组SQL语句组成的逻辑单元,这些操作要么全部成功,要么全部…

Mock 数据的生成与使用全景详解

Mock 数据的生成与使用全景详解 在后端开发过程中,真实数据往往受限于业务进度、隐私保护或接口未完成等因素,无法及时获取。这时,Mock数据(模拟数据)就成为开发、测试、联调不可或缺的利器。本文将从Mock数据的意义、常用场景、主流工具、实战案例到最佳实践,带你全面掌…

HTML 标题标签

需求&#xff1a;在网页显示六级标题标签。代码&#xff1a;//需求&#xff1a;在网页显示六级标题标签。 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title></head><body><h1>一级标题&l…

(限免!!!)全国青少年信息素养大赛-算法创意实践挑战赛小学组复赛(代码版)

选择题部分在 C 中&#xff0c;以下代表布尔类型的是&#xff08;  &#xff09;选项&#xff1a;A. double B. bool C. int D. char答案&#xff1a;B解析&#xff1a;C 中布尔类型的关键字为bool&#xff0c;用于存储逻辑值true或false。执行以下程序&#xff0c;输出的…

编译器优化——LLVM IR,零基础入门

编译器优化——LLVM IR&#xff0c;零基础入门 对于大多数C开发者而言&#xff0c;我们的代码从人类可读的文本到机器可执行的二进制文件&#xff0c;中间经历的过程如同一个黑箱。我们依赖编译器&#xff08;如GCC, Clang, MSVC&#xff09;来完成这项复杂的转换。然而&#x…

react中为啥使用剪头函数

在 React 中使用箭头函数&#xff08;>&#xff09;主要有以下几个原因&#xff1a;1. 自动绑定 this传统函数的问题&#xff1a;在类组件中&#xff0c;普通函数的this指向会根据调用方式变化&#xff0c;导致在事件处理函数中无法正确访问组件实例&#xff08;this为undef…

JavaSE-多态

多态的概念在完成某个行为时&#xff0c;不同的对象在完成时会呈现出不同的状态。比如&#xff1a;动物都会吃饭&#xff0c;而猫和狗都是动物&#xff0c;猫在完成吃饭行为时吃猫粮&#xff0c;狗在完成吃饭行为时吃狗粮&#xff0c;猫和狗都会叫&#xff0c;狗在完成这个行为…

TDengine 使用最佳实践(2)

TDengine 使用最佳实践&#xff08;1&#xff09; 安装部署 目录规划 软件安装 参数配置 时钟同步 验证环境 集群部署 写入查询 连接方式 数据写入 数据查询 运维巡检 运维规范 数据库启停 状态检查 运维技巧 日常巡检 数据库升级 故障排查 故障定位 日志调试 故障反馈 关于 T…

如何通过公网IP访问部署在kubernetes中的服务?

背景说明我们有些私有化部署的项目&#xff0c;使用k8s来承载服务&#xff0c;通过ingress-nginx转发外部的请求到集群。有时候业主的域名没有申请下来&#xff0c;我们会配置临时的域名&#xff0c;测试同事配置主机hosts来完成功能验证&#xff0c;等功能验证完毕后&#xff…

Datawhale AI 夏令营2025科大讯飞AI大赛<夏令营:用AI做带货视频评论分析>

赛题题目 任务一&#xff1a;商品识别 基于视频内容识别对应的商品 【情感分析】对评论文本进行多维度情感分析&#xff0c;涵盖维度见数据说明&#xff1b; 任务二&#xff08;文本分类&#xff09;&#xff1a;从非结构化评论中提取情感倾向 评论聚类】按商品对归属指定维度的…

AI 时代的分布式多模态数据处理实践:我的 ODPS 实践之旅、思考与展望

AI 时代的分布式多模态数据处理实践&#xff1a;我的 ODPS 实践之旅、思考与展望 &#x1f31f;嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 目录 1. 什…

硬件工程师笔试面试高频考点汇总——(2025版)

目录 1 电子器件部分 1.1 电阻 1.1.1 电阻选型时一般从哪几个方面进行考虑? 1.1.2 上拉下拉电阻的作用 1.1.3 PTC热敏电阻作为电源电路保险丝的工作原理 1.1.4 如果阻抗不匹配&#xff0c;有哪些后果 1.1.5 电阻、电容和电感0402、0603和0805封装的含义 1.1.6 电阻、电…

华为HarmonyOS 5.0深度解析:跨设备算力池技术白皮书(2025全场景智慧中枢)

​​摘要​​HarmonyOS 5.0的​​跨设备算力池技术​​正在重构终端计算范式。本文首次系统性拆解其技术内核&#xff1a;通过​​异构硬件资源虚拟化​​、​​任务流图调度引擎​​、​​确定性时延网络​​三大支柱&#xff0c;实现手机、汽车、智慧屏等设备的算力动态聚合与…

ASP.NET Core 中的延迟注入:原理与实践

在软件开发中&#xff0c;依赖注入已成为构建可维护、可测试和可扩展应用程序的核心模式。ASP.NET Core 内置的依赖注入容器为我们管理服务生命周期提供了极大的便利。然而在某些特定场景下&#xff0c;我们可能不希望某个依赖项在宿主对象被创建时立即实例化&#xff0c;而是希…

PHP内存溢出问题的深度分析与系统解决方案

文章目录一、问题本质&#xff1a;什么是PHP内存溢出&#xff1f;内存管理核心原理二、高频内存溢出场景深度解析场景1&#xff1a;大数据集不当处理场景2&#xff1a;无限递归陷阱场景3&#xff1a;实体关系映射&#xff08;ORM&#xff09;的N1问题场景4&#xff1a;未及时释…

常见 HTTP 方法的成功状态码200,204,202,201

HTTP 协议中&#xff0c;操作成功后的状态码选择取决于操作类型和响应内容&#xff0c;并非所有非 GET/POST 请求都返回 204。以下是常见 HTTP 方法的成功状态码规范&#xff1a;1. GET200 OK&#xff1a;默认成功状态码&#xff0c;表示请求成功且返回了资源内容。206 Partial…