Jenkins一键打包部署Spring Boot 应用的Docker镜像

jenkins部署springboot项目,打包为docker镜像 jenkins持续集成springboot打包镜像推送到远端仓库 阅读详情

一、前言

1、本文主要内容

​ 将在项目中实际使用到的相关东西整理记录一波,同时可以方便其他同学在使用到的时候参考一下(自己也备忘),有不对的地方,欢迎指出~~

  • Docker部署SpringBoot 项目通用Dockerfile文件、脚本
  • Jenkins新建任务图文详解

3、本篇环境信息

  • 服务器

    操作系统硬件配置IP说明
    CentOS 74C16G10.133.28.54部署Jenkins
  • Jenkins版本

    Jenkins安装包有两种,一种是LTS,一种是Weekly。LTS是稳定版,Weekly每周会更新一次,一般使用LTS就行了,最新版的LTS:2.235.2

  • Docker

    Docker Engine - Community : 19.03.8

  • Spring Boot应用

    使用的是版本2.2.5.RELEASE,当然只要是一个Spring Boot应用都可以

  • GitLab

    本文演示使用的是GitLab社区版12.7.6 ,也可以使用GitHub 、Gitee或者SVN都可以

二、准备工作

1、Docker 环境安装

在Linux服务器上安装Docker环境,具体可以参考:在Linux服务器上安装Docker Engine

2、Jenkins 环境安装

在Linux服务器上安装Jenkins,具体可以参考:CentOS下使用Docker安装Jenkins及配置详细教程

3、GitLab 环境安装

在Linux服务器上安装GitLab,具体可以参考:GitLab持续集成发布之一:CentOS7下GitLab安装部署教程

三、打包及部署

一般微服务项目都会有很多个服务,本文以cloud-gateway 微服务的网关module为例来演示

1、打镜像Dockerfile及运行脚本

​ 目前微服务盛行,既然是微服务,大部分都会采用Docker容器部署,这样可以非常快捷的扩容,所以本文也会从打镜像,镜像启动,镜像推送等方面详细的介绍下。

  • 通用版Dockerfile

    FROM java:8
    # 以下4行配置可以去掉,在此展示下,只因项目中与SAP采用Jco3直连的方式,相对应的项目部署环境也需要配置JCO3的环境,
    ADD libsapjco3.so /home/sap/libsapjco3.so
    ADD sapjco3.jar /home/sap/sapjco3.jar
    ENV LD_LIBRARY_PATH /home/sap
    ENV CLASSPATH $CLASSPATH:$LD_LIBRARY_PATH/sapjco3.jar
    
    ADD cloud-gateway-1.1.0-SNAPSHOT.jar /app.jar
    EXPOSE 8001
    ENTRYPOINT ["java", "-jar","/app.jar"]
    
    

    生产环境,可以根据需求在ENTRYPOINT命令行中增加JVM相对应参数的设置

  • 执行脚本

    测试环境一般情况下,都是在一台服务器,启动多个Docker容器,此处将spring.profile.active参数提取出来了,可以做到真正的一包多环境使用,可以参考以下脚本:

    #!/usr/bin/env bash
    group_name='mva-cloud'
    app_name='cloud-gateway'
    app_version='1.1.0-SNAPSHOT'
    profile_active='test'
    echo '----copy jar----'
    # 停止容器
    docker stop ${app_name}
    echo '----stop container----'
    # 删除容器
    docker rm ${app_name}
    echo '----rm container----'
    # 删除镜像
    docker rmi ${group_name}/${app_name}:${app_version}
    echo '----rm image----'
    # 构建新版镜像
    docker build -t ${group_name}/${app_name}:${app_version} .
    echo '----build image----'
    # 启动Docker镜像
    docker run -p 9527:9527 --name ${app_name} \
    -e 'spring.profiles.active'='prod' \
    -e TZ="Asia/Shanghai" \
    -v /etc/localtime:/etc/localtime \
    -v /home/zkgc/mydata/cloud/${app_name}/logs:/home/zkgc/logs/${app_name} \
    -d ${group_name}/${app_name}:${app_version}
    echo '----start container----'
    

    生产环境,一般情况下都需要将打好的镜像推送到docker私有仓库中,所以说每一版都需要有版本号的变化,可以考虑使用时间戳动态版本号,docker私有仓库相关介绍可以参考:Docker | 在CentOS上搭建Docker私有仓库Registry-v2

  • 将Dockerfile、运行脚本run.sh放到服务器的/home/cloud/test-deploy/cloud-gateway目录,后续通过Jenkins打包的Jar 文件也需要拷贝到该目录,如果需要配置SAP的环境,那对应的jar、so文件都需要拷贝到这一个目录,这样在打镜像的时候,就会把相对应的环境打到镜像里面。

2、Jenkins创建任务

  • 新建一个自由风格的任务

    在这里插入图片描述

  • 配置源码管理

    我这边使用的是GitLab,当然你们使用Github、Gitee都是可以的。

在这里插入图片描述

增加一个访问GitLab的用户名密码

在这里插入图片描述

  • 配置构建

    在构建这个模块下呢,我们主要配置使用Mavenn来进行打包、配置通过SSH执行命令并传输文件等

    • 先打包使用到的通用module。点击增加构建步骤–>调用顶层Maven目标

在这里插入图片描述

说明下:我这个演示项目已经把一些通用的东西抽取出来了,而gateway 是依赖这些通用的module,所以我这会先将这些通用的进行打包,防止在打包gateway的时候,找不到对应的jar包

  • 配置打包cloud-gateway,点击增加构建步骤–>调用顶层Maven目标,具体配置项参考下图:

    在这里插入图片描述

  • 配置执行上面准备好得脚本。点击增加构建步骤–>Send files or execute commands over SSH选项,这个是将打完包得jar包拷贝到指定服务器的指定目录,完成后执行相对应的脚本,具体如下图:

在这里插入图片描述

这个地方,需要提前配置好服务器的凭证信息(在公众号的其他文章有教程,可以翻一下),服务器需要开启ssh访问,我这里是Jenkins与测试服务器不在一起,如果在一起的话,就可以选择只运行脚本命令的那个构建选项即可。

  • 点击保存,这样一个任务就创建完成了。

在这里插入图片描述

想发版的时候,点一下立即构建,Jenkins就会自动从代码仓库拉取最新代码,进行打包,打镜像,启动镜像一键完成了。

另外,前台代码也是可以通过Jenkins来进行一键打包部署的,与后台的稍微有些不同,后续我会单独写一篇文章,来演示下如何进行前台代码的一键打包部署,前台代码使用的是VUE进行演示。

以上,只要你跟着步骤一步步来,完全就可以使用了,剩下的还想添加什么功能自己研究研究玩玩就好啦
欢迎关注公众号私信我,一起探讨,一起学习

在这里插入图片描述

Jenkins+Docker+Harbor快速部署Spring Boot项目详解 本文详细介绍了如何利用Jenkins、Docker和Harbor快速部署Spring Boot项目。首先,Jenkins作为自动化CI/CD工具,负责代码拉取、编译、测试、构建Docker镜像及部署;Docker用于容器化应用,确保环境一致性;Harbor则作为企业级Docker镜像仓库,提供镜像存储和管理功能。接着,文章指导了环境准备,包括服务器规划和软件安装。随后,详细讲解了Harbor的安装与配置,包括证书生成和HTTPS启用。Jenkins的安装与配置部分则涵盖了Docker安装、初始化及必要插件的 阅读详情

相关推荐

基于 CI/CD(Jenkins)将 Spring Boot 应用自动部署到 Kubernetes 集群

本文基于Jenkins搭建了一套SpringBoot应用CI/CD自动化部署流水线,实现从代码提交到K8s集群部署的全流程自动化。方案采用Jenkins作为CI/CD工具,结合Maven、Docker和Kubernetes等技术栈,通过配置Jenkinsfile定义构建、镜像推送和远程部署流程。实施步骤包括环境准备(K3s集群部署、Jenkins安装)、项目配置(Dockerfile、K8s资源配置)以及流水线构建验证。该方案有效解决了传统手动部署的效率低下、环境不一致等问题,提高了微服务应用的部署效率和稳

Lin_Aries_0421的博客 1317

Jenkins+Docker 一键自动化部署 SpringBoot 项目

点击关注公众号,实用技术文章及时了解本文章实现最简单全面的Jenkins+docker+springboot 一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运行。一、安装dockerdocker安装社区...

Java知音 4014

Jenkins+Docker自动化部署Spring boot项目 (三)搭建jenkins

Jenkins+Docker自动化部署Spring boot项目 (三)搭建jenkins 搭建jenkins jenkins我是通过下载镜像完成安装的,建议使用docker hub的镜像,它提供的版本比较新。一开始为了图快,我用了163镜像库的jenkins镜像,它的版本比dokcer hub低一个版本。安装好后安装插件,有个必要的插件安装不上,提示版本太低,后来换成docker hub提供...

liubingyu12345的博客 1万+

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 以上,可以使用以下

养歌的博客 4028

结合Jenkins、Docker和Kubernetes等主流工具,部署Spring Boot自动化实战指南

通过此流程,可实现提交代码 → 自动测试 → 镜像构建 → 生产部署的全链路自动化,部署耗时从小时级降至分钟级,同时保障环境一致性。实际应用中需根据团队规模选择工具链复杂度,中小项目可精简为Jenkins+Docker Compose方案。通过Terraform编排基础设施,结合Kubernetes多集群联邦(如Karmada)实现跨云部署。使用Argo CD同步Git仓库与K8s集群,实现声明式部署(版本可控、审计追踪)。镜像优化:使用JLink构建定制化JRE镜像,减少攻击面和启动时间。

Vinceri的博客 1540

Docker+Jenkins:一键自动化部署,让你的项目管理飞跃!

你是否还在为项目的手动部署而头痛?是否梦想着一键完成所有部署工作,让开发和运维无缝对接?今天,我要分享的不仅仅是一个技巧,而是一场关于效率的革命——使用Docker安装Jenkins并实现项目自动化部署!

LA1245780的博客 1306

Jenkins+Docker一键自动化部署Java Spring Boot 应用最简单详细流程

本文章实现最简单全面的Jenkins+docker+springboot 一键自动部署项目。步骤齐全,少走坑路。 环境:centos7+git(gitee) 简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运行。 有问题留言,看到会及时回复。 一、安装docker docker安装社区版本CE 1.确保 yum 包更新到最新。 yum update 2.卸载旧版本(如果安装过旧版本的话) yum remove doc

这把躺赢 5638

jenkins+docker部署springboot项目

jenkins+docker部署springboot

蔡定努 1130

docker jenkins 部署springboot项目

【代码】Jenkins docker部署项目。

造梦先森Kai的专栏 1408

告别‘线束丛林’:手把手拆解车身域控制器(BCM/PEPS/网关)的硬件选型与PCB布局要点

本文深入解析车身域控制器的硬件选型与PCB布局要点,涵盖主控MCU选择、通信接口设计、电源架构优化及EMC设计等关键环节。通过实战案例分享,帮助工程师解决高密度集成带来的电源完整性、热管理和信号隔离挑战,实现更稳定高效的汽车电子系统设计。

weixin_42567279的博客 394

基于PLC的冲压件自动生产线电气系统设计【附数据】

考虑到生产线的高效运行和维护简便性,选择了三菱FX系列的可编程逻辑控制器(PLC)作为核心控制单元,该型号的PLC因其高可靠性和强大的功能集,在工业自动化领域有着广泛的应用。最后,在完成初步的软件开发后,进行了多轮次的模拟测试和现场调试,逐步修正了存在的问题,最终达到了预期的功能要求。例如,对于进料环节,选用了光电传感器以精确检测物料的位置;此外,为了适应不同尺寸的工件加工需求,还特别设计了一套可调节的夹具系统,不仅提高了生产线的灵活性,同时也降低了更换模具的成本。✅ 感恩科研路上每一位志同道合的伙伴!

lagougongzuoshi的博客 1291

docker打包镜像上传_Jenkins | 一键打包部署Spring Boot 应用的Docker镜像

一、前言1、本文主要内容 将在项目中实际使用到的相关东西整理记录一波,同时可以方便其他同学在使用到的时候参考一下(自己也备忘),有不对的地方,欢迎指出~~Docker部署SpringBoot 项目通用Dockerfile文件、脚本Jenkins新建任务图文详解3、本文环境信息服务器操作系统硬件配置IP说明CentOS 74C16G10.133.28.54部署JenkinsJenkins版...

weixin_29191761的博客 225

3-RRR并联机器人结构详解:从运动学到奇异点分析(附MATLAB仿真代码)

本文详细解析了3-RRR并联机器人的结构设计、运动学建模及奇异点分析,并提供了MATLAB仿真代码。通过对称性设计和可分析性,3-RRR结构成为教学与研究的理想对象。文章从基础杆件参数设置到奇异位形的实时捕捉,深入探讨了机构运动的数学本质,并分享了仿真调试中的实用技巧,助力工业自动化和精密控制应用。

sunny的博客 364

Jenkins 自动化部署 Spring Boot 集群项目(含 Nginx 负载均衡)

去这里下载.msi文件,然后安装再配置java的环境变量即可。

weixin_41359273的博客 440

vivo X200 Ultra前瞻系列(1):重塑影像旗舰标准

在色彩风格化、视频专业度上实现了安卓阵营的突破性进步。其2亿像素长焦、双LYT-818传感器及5轴防抖技术,对追求个性化创作的用户具有强吸引力。若真机表现能兑现硬件承诺,X200 Ultra有望重新定义手机影像的“专业”标准。然而,其厚重设计、价格门槛及生态适配问题,仍需市场检验。vivo X200 Ultra作为2025年上半年影像旗舰,以“全焦段夜视仪+电影级视频”为核心卖点,主打。,对标小米15 Ultra、OPPO Find X8 Ultra等竞品。,顶配版(24GB+2TB)逼近万元。

专注:太空算力、AI infra、异构调度、大模型成本工程 963

遇到问题--OpenClaw--API rate limit reached. Please try again later429 您的账户已达到速率限制,请您控制请求频率

OpenClaw调用glm-4.7-flash模型时触发智谱AI平台429速率限制错误。分析发现当前重试策略采用固定间隔(7-11秒)导致连续失败,且未记录关键响应头信息。解决方案分三步:1)开启响应头日志获取配额详情;2)将重试策略改为带抖动的指数退避(初始1秒,最大60秒);3)在网关层实现令牌桶限流主动控制请求频率。需特别注意令牌配额(TPM)可能比请求次数(RPM)更早触达限制。

直到世界的尽头 2614

【Docker安装Jenkins打包SpringBoot应用为docker镜像并运行】

本文将带领大家一步一步的通过docker搭建jenkins服务,如何通过jenkins打包SpringBoot项目并构建成docker镜像,最后在docker中运行该容器实例。

weixin_43755251的博客 5030

玩转大语言模型——使用华为官方MindIE-Server镜像方式部署DeepSeek模型

本文将详细介绍在国产Linux系统欧拉中使用华为官方MindIE-Server镜像方式部署DeepSeek模型。一般情况下华为昇腾800I服务器可以推理DeepSeek-R1-70B,4张300I-Duo服务器可以推理DeepSeek-R1-32B。在配置中尽量贴合官方文档,包含用到的一些其他的技术细节,便于零基础入门使用。

艾醒的博客 1289

Jenkins + Docker 轻松一键自动化部署 Spring Boot 项目

本文章实现最简单全面的 Jenkins + Docker + Spring Boot 一键自动部署项目。步骤齐全,少走坑路。环境:CentOS7 + Git (Gitee)实现步骤:在 Docker 安装 Jenkins,配置 Jenkins 基本信息,利用 Dockerfile 和 Shell 脚本实现项目自动拉取打包并运行。安装社区版本 Docker CE 5. 安装 Docker

m0_50180963的博客 1781

Vue3 - 详细实现调用浏览器摄像头拍照并生成图片预览,支持将抓拍的图像保存到用户本地或上传到服务器、调取前置摄像头和后置摄像头,开启摄像头并进行拍照,vue实现调用摄像头,电脑或手机调用摄像头拍照

vue3,nuxt3,摄像头,vue3网站打开摄像头拍照,vue3项目调用摄像头实现拍照功能,拍照后怎么保存,照相后上传到后端服务器,开启摄像头黑屏,如何默认后置摄像头,网页开启电脑摄像头并照相,前置拍照,vue3如何调用手机摄像头进行拍摄,拒绝权限后不再弹出了,微信公众号网页,摄像头报错,拍照左右镜像反了,浏览器不兼容怎么办,vue3调用电脑端摄像头实时拍照,解决调用摄像头权限无法弹出,打不开摄像头,Vue3如何调用手机的摄像头,调用本地摄像头实现拍照,浏览器不弹摄像头权限了,如何不使用https运行测试

🏆 前端领域优质创作者 8654

开源模型应用落地-qwen模型小试-Qwen3-8B-快速体验(一)

阿里云推出国内首个集成“快思考”与“慢思考”能力的 Qwen3-8B 大语言模型,以80亿参数和 128K 上下文支持,重塑AI应用边界并助力开发者高效部署

以微薄之力,予他人些许温暖. 2万+

Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台

Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台

FamineFree的博客 6089

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

基于Jenkins自动化部署spring boot项目

1. 使用Jenkins来实现微服务架构下的自动化部署! 在微服务架构中,随着项目拆分越来越细,导致服务越来越多,服务的打包部署就会成为一个相当麻烦的事情。在我之前工作的公司都是本地打包好,上传到服务器上,再创建脚本运行,这样产生的问题就是服务累积越多,部署越耗大量的人力和时间,那有没有什么办法让我们部署一次之后,只要点击执行就可以自动部署呢?当然有!下面我们使用Jenkins来完成一个微服务架...

芒果不是程序猿v: 的博客 4125

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

如何用 Jenkins+Docker 实现一键自动化部署

本文章实现最简单全面的+docker+springboot 一键自动部署项目,步骤齐全,少走坑路。环境:centos7+(gitee)简述实现步骤:在,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运行。

2401_85696278的博客 1089

计算机控制技术及应用

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

上一篇: CentOS下使用Docker安装Jenkins及配置详细教程
下一篇: Spring Cloud 项目各种超时时间设置详解
Hugh Pro
博客等级 码龄16年 6粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值