DockerCompose+Jenkins+Pipeline流水线打包SpringBoot项目(解压安装配置JDK、Maven等)入门

场景

DockerCompose中部署Jenkins(Docker Desktop在windows上数据卷映射):

DockerCompose中部署Jenkins(Docker Desktop在windows上数据卷映射)-CSDN博客

Docker+Jenkins+Gitee+Maven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑:

Docker+Jenkins+Gitee+Maven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑_jenkins的安装以及集成jdk+git+maven 提示警告-CSDN博客

上面流程新建jenkins项目为maven项目,这里使用jenkinsfile文件的形式使用流水线语法进行SpringBoot/Maven项目的打包示例。

注:

博客:
霸道流氓气质-CSDN博客

实现

1、Pipeline流水线语法文档

流水线语法

2、环境搭建,首先在windows电脑上(这里使用本机演示,尽量使用linux服务器)

新建目录,并新建如下目录,其中jenkins_home用来映射容器内Jenkins的工作目录;tools用来映射容器内离线解压配置jdk和maven等工具

3、Windows上使用Docker Desktop部署jenkins后运行卡顿现象排查

首先按照上面文章部署jenkins容器时不要使用latest的最新版本,而是使用lts的稳定版本。

其次在启动jenkins容器后不进行安装推荐的插件,会导致很多插件的版本与jenkins的版本不对应,

进而导致大量不兼容报错的提示,所以在启动成功之后按需自行安装插件。

4、docker(Docker Desktop)部署jenkins后如何通过解压配置的方式配置jdk

首先下载jdk的tar.gz包,注意这里要下载linux版本的,因为最终是要给容器内jenkins使用。

比如这里下载的为jdk-8u401-linux-x64.tar.gz

然后以管理员模式运行解压软件,这里是使用winrar,然后将上面的jdk的压缩包进行解压。

windows上一定要以管理员模式解压,否则会有问题。

当然如果是在linux上则直接使用解压命令解压即可。

注意解压之后会有一层最外层的目录,将外层目录去掉,最终实现jdk的目录结构为

即将原来的bin所在的目录直接放在tool目录下的java路径下

同理在linux上可以执行如下类似的指令

rm -rf java & mkdir java & tar xzvf jdk-*.tar.gz --strip-components 1 -C ./java

jenkins中配置jdk的安装

访问jenkins的页面中系统管理-全局工具配置-JDK安装-不要勾选自动安装,注意这里的别名为jdk,

这个名称需要记住,后续需要与jenkinsfile中tool配置时一致。

然后注意这里的JAVA_HOME路径为:/tool/java

5、docker(Docker Desktop)部署jenkins后如何通过解压配置的方式配置maven

同上面解压jdk同样,下载maven的压缩包并解压至tool下maven目录下,使bin目录所在的目录直接就在

tool/maven下。

修改maven的配置文件,修改上面conf下settings.xml中的配置项。

比如修改仓库地址,首先在容器映射路径下tool下新建repo目录,然后修改settings配置文件中localRepository的路径为

/tool/repo

比如修改镜像源为aliyun仓库地址,这里不再赘述,其实就是对maven的配置文件进行修改,比如可以拿本地开发调试用的maven的配置文件进行修改和替换。

访问jenkins的页面中系统管理-全局工具配置-Maven安装-不要勾选自动安装,注意这里的别名为maven

这个名称需要记住,后续需要与jenkinsfile中tool配置时一致。

然后注意这里的MAVEN_HOME路径为:/tool/maven

6、插件安装

配置完以上jdk与maven之后,需要安装必须的插件。

这些需要安装Git plugin、Maven Integration、Pipeline(流水线插件)、Localization:Chinese(Simplified)中文语言包汉化插件、Pipeline:Stage View Plugin插件(流水线图形化插件)、Gitee(这里代码存放在Gitee上)。

以上插件以及其他插件的安装根据个人需求进行安装。

确保拉取代码并打包的必须的插件安装即可。

7、配置流水线项目

新加项目-安装pipeline插件后会有流水线项目选项

然后配置gitee代码地址

接下来配置git以及凭证等

定义流水线为Pipeline script from SCM,然后SCM为Git,配置仓库地址以及拉取代码的凭证,这里使用的是账户密码,当然也可以使用其他

ssh公钥私钥、giteeapi令牌等方式。

添加凭证直接点击添加

 然后继续往下配置Jenkinsfile的路径,这里配置项目根目录下,然后在gitee远端代码仓库根目录下新建Jenkinsfile文件

这样的目的是使流水线的配置文件可以被版本管理起来,方便修改和维护。

修改文件内容如下

pipeline {
    agent any
 tools {
        maven 'maven'
        jdk   'jdk'
    }
    stages {
  stage('编译构建') {
            steps {
                sh 'mvn clean package -DskipTests'
            }
        }
    }
 post {
        always {
            echo '构建结束,结果:'
        }
  success {
            echo '构建成功'
        }
  failure {
            echo '构建失败'
        }
    }
}

流水线的具体语法参考上面,这里这里的tools中与上面配置jdk和maven时配置的别名一致。

8、构建流水线项目

点击立即构建,第一次构建时间较长,因为需要下载依赖,然后构建完成可以查看日志确认

并且到容器内与容器外映射的路径的jenkins_home/workspace/server_test(这里是新建的任务名)下面对应的jar包路径下去确认。

后续拿到jar包之后需要什么其它操作,就是根据需求自行实现了。比如可以实现通过ssh发送jar包并实现更新操作等。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文图片颜色提取

论文绘图的时候有些颜色不知道怎么选取,参考其他论文,将其他论文中的颜色提取下来,用取色器识别出来,记录如下: 颜色代码:#BEAED4 190,174,212 颜色代码:#C4CBCB 196,203,203 颜色代码&am…

51单片机实验05 -点阵

目录 一,熟悉矩阵led小灯 1,点亮矩阵的一只led 2,点亮矩阵的一排led 3,点亮矩阵的全部led static 关键字 unsigned 关键字 4,点阵的静态显示 2)心形矩阵显示代码 3)效果 二,课…

6.nginx负载均衡

说明 增加服务器的数量,将请求分发到各个服务器上。 将原来请求集中到单个服务器上的情况改为将请求分发到多个服务器上。 案例 浏览器请求地址http://ip/edu/a.html, 负载均衡的效果,平分到8080和8081两台服务上中。 准备工作 tomcat8080配置 tomcat8081配置 直接通过…

----几种接口的使用---

Compareable接口 对于给数组中的变量成员排序,我们能想到用sort,根据成员之间的大小进行排序,那么如果数组中的成员是对象的话,单单只是用sort去排序肯定是步成功的,因为并不知道要根据什么去排序, 这时要…

【C++】编译

三、C编译 前面给大家演示了如何从写C代码到编译代码再到执行代码的全过程。这个过程中非常重要的编译环节,被我们一个按钮或者一个ctrlF7快捷键就给带过了。其实这个环节非常重要,如果你非常了解这个环节,你开发源代码就会更加自信和清醒&a…

CorelDRAW 2024开启设计新纪元,终身永久版与中文破解版的全面解析及安装攻略

当我们谈论图形设计软件时,CorelDRAW无疑是一个响亮的名字。作为一款强大的矢量图形编辑工具,它以其丰富的功能和用户友好的界面赢得了全球设计师的喜爱。随着CorelDRAW 2024的发布,这个备受瞩目的版本带来了前所未有的创新特性,进…

Vulnhub-DC-1,7

靶机IP:192.168.20.141 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 前言 1和7都是Drupal的网站,只写了7,包含1的知识点 信息收集 用nmap扫描端口及版本号 进入主页查看作者给的提示,不是暴力破解的…

ROS2底层机制源码分析

init ->init_and_remove_ros_arguments ->init ->Context::init 保存初始化传入的信号 ->install_signal_handlers→SignalHandler::install 开线程响应信号 ->_remove_ros_arguments 移除ros参数 ->SingleNodeManager::instance().…

条件判断if语句与case语句

一、条件测试 test命令进行条件测试,然后根据返回值来判断条件是否成立。 常用操作符: -e :既可以测试文件又可以测试目录是否存在 -d :测试目录是否存在 -f :测试文件是否存在 -r :测试当前用户是否…

前端加载 动画特效

效果图: 完整代码: <!DOCTYPE html> <html> <head><meta charset="UTF-8" /><title>加载动画</title><style type="text/css">/* 设置页面背景颜色 */body {background: #ECF0F1;}/* 定义加载动画容器的样式…

抖店没人做了?不是项目不行了,而是商家们都换思路去玩了

我是王路飞。 有没有发现现在很多抖店新手都在吐槽&#xff0c;抖店不好做了&#xff0c;做不起来&#xff0c;没人做了&#xff0c;太内卷了...... 对这种做不起来还在怪项目本身的&#xff0c;一定要离他远一点&#xff0c;省得被他的负能量给影响到自己的状态。 任何项目…

怎么学习汇川Codesys PLC教程?

前言 各位好&#xff0c;我在B站和抖音上都有发布视频的&#xff0c;搜索我的名称“阿凡工控分享”即可。在CSDN上发表文章也是想把我的一点见解和经验分享出来&#xff0c;进一步的方便大家进行学习。 我是正文 本文主要也是为了方便大家学习汇川的Codesys PLC而制作的&…

Java并发编程之线程池源码解析与实现详解

Java并发编程是现代开发中非常重要的一个领域。使用线程池来管理和控制线程的创建和生命周期&#xff0c;可以更加高效地利用系统资源&#xff0c;提高系统的并发性能。线程池是一种常见的并发编程模型&#xff0c;Java提供了ThreadPoolExecutor类来实现线程池。本文将详细解析…

⌈ 传知代码 ⌋ MonoCon解读与复现

&#x1f49b;前情提要&#x1f49b; 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间&#xff0c;对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

写给大数据开发:好的指标定义、特性与业务价值

在大数据时代&#xff0c;数据的质量对于业务决策和数据分析至关重要。好的数据不仅丰富&#xff0c;而且准确、及时&#xff0c;为业务提供有力支撑。 文章目录 数据定义与特性数据对业务的价值指标展示与规范化定义一些指标的定义好的数据是业务成功的关键 数据定义与特性 好…

在 Wed 中应用 MyBatis(同时使用MVC架构模式,以及ThreadLocal 事务控制)

1. 在 Wed 中应用 MyBatis&#xff08;同时使用MVC架构模式&#xff0c;以及ThreadLocal 事务控制&#xff09; 文章目录 1. 在 Wed 中应用 MyBatis&#xff08;同时使用MVC架构模式&#xff0c;以及ThreadLocal 事务控制&#xff09;2. 实现步骤&#xff1a;1. 第一步&#xf…

python爬虫爬取微博评论--完整版(超详细,大学生不骗大学生)

目录 一、找到页面 二、学会使用检查元素 2.1 打开检查元素界面 2.2 找到所有评论所在的位置 2.2.1 搜索评论 2.2.2 找到data表 三、基础部分代码实现 四、格式化输出 4.1 了解存储格式 4.2 单独取出内容 4.3 取出所有评论内容 4.4 格式化读取信息 五、导出成表格…

【ARM Cache 与 MMU 系列文章 7.4 -- ARMv8 MMU 配置 寄存器使用介绍】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 MMU 转换控制寄存器 TCR_ELxTCR_ELx 概览TCR_ELx 寄存器字段详解TCR 使用示例Normal MemoryCacheableShareability MMU 内存属性寄存器 MAIR_ELxMAIR_ELx 寄存器结构内存属性字段Devic…

两种典型的嵌入式系统架构模式

大多数嵌入式系统都具备实时特征&#xff0c;那么&#xff0c;这种嵌入式系统的典型架构可概括为两种模式&#xff0c;即层次化模式架构和递归模式架构。 1.层次化模式架构 为了达到概念一致性&#xff0c;许多系统通过层次化的方法进行搭建。这样做的结果是&#xff1a;位于高…

【漏洞复现】海洋CMS /js/player/dmplayer/dmku/ SQL注入漏洞复现(CVE-2024-29275)

0x01 产品简介 海洋CMS是一套专为不同需求的站长而设计的内容管理系统&#xff0c;灵活、方便、人性化设计、内容的专业网站。海洋CMS基于PHPMySql技术开发&#xff0c;完全开源免费、无任何加密代码。简单易用是最大的特色&#xff0c;可快速建立一个海量 0x02 漏洞概述 海…