jenkins搭建及流水线配置
1.安装docker
curl https://mirrors.aliyun.com/repo/Centos-7.repo >> CentOS-Base-Aliyun.repomv CentOS-Base-Aliyun.repo /etc/yum.repos.d/yum -y install yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum clean yum makecache fastyum -y install docker-cesystemctl start docker
在这台机器上也需要修改/usr/lib/systemd/system/docker.service
这个是harbor的ip+端口
配置完成后
重启docker
root@localhost]# systemctl daemon-reload
[root@localhost]# systemctl restart docker
2.安装maven
在官网上下载一个maven上传到服务器上
https://maven.apache.org/download.cgi
下载完毕后解压
tar zxvf apache-maven-3.9.9-bin.tar.gz
解压完毕后移动
mv apache-maven-3.9.0 /usr/local/maven
3.下载git
yum install -y git
4.安装jdk11
首先下载对于的jdk
然后进行解压
配置jdk环境变量
vi /etc/profileJAVA_HOME=/usr/local/jdk-11.0.24
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH执行source /etc/profile生效配置
5.安装jenkins
docker run -d --name jenkins6 --restart always \
--user root -p 10204:8080 -p 50000:50000 \
-v /data2/devOps/jenkins/data:/var/jenkins_home \
-v /usr/local/maven:/usr/local/maven \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker \
-v /usr/local/jdk-11.0.24:/usr/local/jdk-11.0.24 \
jenkins/jenkins
进入后使用docker logs jenkins查看初始密码
然后选择推荐的插件
首先进入jenkins之后需要现在“Maven”、“GitLab”、“Jdk”、“SSH”、“Git”的相关插件
6.登录上jenkins配置截图:
6.1系统管理-全局工具配置
配置具体工具
Maven配置:
这里的路径都是jenkins镜像启动时配置的映射路径的地址
jdk安装:
这里的路径都是jenkins镜像启动时配置的映射路径的地址
配置git
配置maven
这里的路径都是jenkins镜像启动时配置的映射路径的地址
配置完成后点击应用和保存
6.2 配置系统配置
配置ssh
这个是jenkins服务器的ip和端口 需要添加的是服务器的登录用户名和密码
点击添加即可添加
部分可参考
参考文章连接:
https://blog.csdn.net/weixin_44100795/article/details/140373925
配置gitlab
这里需要的是gitlab的token具体方法参考
https://blog.csdn.net/weixin_40918067/article/details/116894558
配置
系统配置
Jenkins连接gitlab需要配置access token,所以先在gitlab上生成access token,后将该token配置在Jenkins上。(access token只需配置一次,后续每个工程直接使用即可)
. 获取连接token
1)登陆gitlab,在用户头像下拉图标,选择“Setting”
点击“Create personal access token”,生成access token,记录下来。
然后再jenkins中添加此凭证用于系统管理-系统配置
然后点击应用和保存
7.构建项目
点击新建任务
选择新建maven项目
配置源码管理
这里配置的路径是git项目的路径,认证是git的登录用户名和密码,没有配置的话可以点击添加配置一个。
指定分支是指定对那个分支进行触发可以配置多个。
然后点击报错
点击立即构建可进行打镜像
用虚拟机的话需要配置一下桥接模式,这样别人就能访问了。
以上是手动构建镜像。
下面是结合上面的配置增加的自动提交代码后触发流水线的操作。
如果想要自动一提交git就会触发那就看下面的步骤:、
以管理员身份登录Gitlab,进入adminarea(首页顶层一行有个小扳手图标)点击进入,接着左侧菜单栏---->settings(设置)下一级---->network(网络)---->outbound requests expend(外发请求)前面打勾(□ Allow requests to the local network from web hooks and services-允许Webhook和服务对本地网络的请求)即可
点击进入git里面的项目
点击下面的操作
创建一个webhooks配置
URL和token取的就是下面红框中的url和token
Java服务相关代码配置如下:
首先编写一个dockerfile文件
FROM openjdk:8-jdk# 设置工作目录
WORKDIR /app# 将 JAR 文件从本地目录复制到容器的工作目录
COPY target/jenkins-images-jar.jar /app/jenkins-images-jar.jar# 运行 JAR 文件
ENTRYPOINT ["java", "-jar", "/app/jenkins-images-jar.jar"]
pom.xm配置如下:
<build><!--这里指定 package 的 jar 包名称--><finalName>jenkins-images-jar</finalName><plugins><!-- 这里是创建项目时就带上的 SpringBoot 插件 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!-- Dockerfile maven plugin --><plugin><groupId>com.spotify</groupId><artifactId>dockerfile-maven-plugin</artifactId><version>1.4.10</version><!--将插件绑定在某个phase执行--><!-- 镜像构建完毕之后自动推送到仓库 --><executions><execution><id>default</id><phase>package</phase><goals><goal>build</goal><goal>push</goal></goals></execution></executions><configuration><username>xiaozeng</username> <!-- docker私有仓库用户名,已登录则不需要 --><password>aaaaaaaa</password> <!-- docker私有仓库密码,已登录则不需要 --><repository>192.168.1.129:9001/abcd/${project.build.finalName}</repository><tag>${project.version}</tag><buildArgs><JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE></buildArgs></configuration></plugin></plugins></build>
其他的pom配置就是自己配置就好,这里最主要的是dockerfile和pom需要在同一级目录下。
相关文章:
jenkins搭建及流水线配置
1.安装docker curl https://mirrors.aliyun.com/repo/Centos-7.repo >> CentOS-Base-Aliyun.repomv CentOS-Base-Aliyun.repo /etc/yum.repos.d/yum -y install yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/…...
Vue v-on
vue : v-on:func --------------------------- data(){ return{ prop:any; } } methods:{ func(){ } } template:, v-on...
快速生成高质量提示词,Image to Prompt 更高效
抖知书老师推荐: 随着 AI 技术的不断发展,视觉信息与语言信息之间的转换变得越来越便捷。在如今的数字化生活中,图像与文字的交互需求愈发旺盛,很多人都希望能轻松将图像内容直接转化为文本描述。今天我们来推荐一款实用的 AI 工…...
SELS-SSL/TLS
一、了解公钥加密(非对称加密) 非对称加密中,用于加密数据的密钥与用于解密数据的密钥不同。私钥仅所有者知晓,而公钥则可自由分发。发送方使用接收方的公钥对数据进行加密,数据仅能使用相应的私钥进行解密。 你可以将…...
算法:排序
排序算法 1. 简单排序1.1 直接插入排序1.2 冒泡排序1.3 简单选择排序 2. 希尔排序3. 快速排序4. 堆排序5. 归并排序 将文件的内容按照某种规则进行排列。 排序算法的稳定判定:若在待排序的一个序列中, R i R_i Ri和 R j R_j Rj的关键码相同…...
MyBatis-Plus 更新对象时如何将字段值更新为 null
MyBatis-Plus 是一个 MyBatis 的增强工具,在简化开发、提高效率方面表现非常出色。然而,在使用 MyBatis-Plus 更新对象时,默认情况下是不会将字段值更新为 null 的。这是因为 MyBatis-Plus 使用了非空字段策略(FieldStrategy&…...
Unreal5从入门到精通之如何在VR中使用3DUI
文章目录 前言创建3DUI1.新建控件蓝图2.添加控件到画布上3.新建Actor蓝图MyUIActor4.添加控件组件Widget5.设置控件类和画布大小6.创建MyUIActor实例到场景中3DUI和VR射线交互1.添加按钮的点击事件2.设置MyUIActor碰撞响应3.VRPawn添加控件交互组件4.添加手柄Trigger点击事件绑…...
ViSual studio如何安装 并使用GeographicLib
在C的 Boost.Geometry、GDAL/OGR 和 GeographicLib。这些库都可以用于计算两个经纬度点之间的地面距离。 . Boost.Geometry 描述:Boost库的一部分,提供了几何计算功能,包括计算两点之间的地面距离。 优势:轻量级、易于集成到C项…...
Java程序设计:spring boot(11)——分布式缓存 Ehcache 整合
目录 1 Spring Cache 相关注解说明 1.1 CacheConfig 1.2 Cacheable 1.3 CachePut 1.4 CacheEvict 1.5 Caching 2 环境配置 2.1 pom.xml 依赖添加 2.2 ehcahe.xml ⽂件添加 2.3 application.yml 缓存配置 2.4 启动缓存 2.5 JavaBean 对象实现序列化 3 缓存实现 3.…...
豆包,攻克数字是个什么工具?《GKData-挖掘数据的无限可能》(数据爬虫采集工具)
豆包,攻克数字是个什么工具? “攻克数字” 指的是 “攻克数字(GKData)” 这样一款工具。是一款针对网页、APP中数据自动解析转表存入数据库的软件,为数据工作者而生。它是一个不会编程也能用的可视化数据解析为标准二…...
说一说QWidget
目录 关于QWidget 作为界面组件时,你需要有印象的 1. 控制属性 2. 组件状态与交互属性 3. 外观和样式属性 4. 布局与子组件管理属性 5. 图标和光标属性 6. 大小策略属性 作为单独的窗体的属性 写Qt快两年了,也写过一些规模偏大的软件,…...
Web3.0技术入门
Web3.0技术入门是一个涉及多个方面和领域的复杂过程,以下是一些关键的步骤和要点,帮助您初步了解并掌握Web3.0技术。 一、了解Web3.0的基本概念 Web3.0也被称为下一代互联网,它是对当前互联网(Web2.0)的演进和升级。…...
spygalss cdc 检测的bug(二)
当allow_qualifier_merge设置为strict的时候,sg是要检查门的极性的。 如果qualifier和src经过与门汇聚,在同另一个src1信号或门汇聚,sg是报unsync的。 假设当qualifier为0时,0&&src||src1src1,src1无法被gat…...
集合论(ZFC)之 选择公理(Axiom of Choice)注解
直观感受(Intuition) 集合论(ZFC)中的 "C" 指的是选择公理(Axiom of Choice)中的"choice"。简单来说,对于任一非空集合 S,那么存在一个函数 f,选择出…...
JS:字符串操作
目录 1、 字符串分割 1、 字符串分割 var str "123,456,789"; console.log(str.split(,)); // ["123", "456", "789"]...
.NET 一款二进制文件转换Shellcode的工具
01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失…...
【CSS】——基础入门常见操作
阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:CSS引入 二:CSS对元素进行美化 1:style修饰 2:选…...
LuaJIT源码分析(五)词法分析
LuaJIT源码分析(五)词法分析 lua虽然是脚本语言,但在执行时,还是先将脚本编译成字节码,然后再由虚拟机解释执行。在编译脚本时,首先需要对源代码进行词法分析,把源代码分解为token流。lua的toke…...
005 匿名信
005 匿名信 题目描述 电视剧《分界线》里面有一个片段,男主为了向警察透露案件细节,且不暴露自己,于是将报刊上的字剪下来,剪拼成一封匿名信。现在有一名举报人,希望借鉴这种方式,使用英文报刊完成举报操…...
聊聊Web3D 发展趋势
随着 Web 技术的不断演进,Web3D 正逐渐成为各行业数字化的重要方向。Web3D 是指在网页中展示 3D 内容的技术集合。近年来,由于 WebGL、WebGPU 等技术的发展,3D 内容已经能够直接在浏览器中渲染,为用户提供更加沉浸、互动的体验。以…...
【数据结构与算法】LeetCode: 贪心算法
文章目录 LeetCode: 贪心算法买卖股票的最佳时机 (Hot100)买卖股票的最佳时机 II跳跃游戏 (Hot100)跳跃游戏 II(Hot100)划分字母区间 (Hot100)分发饼干K次取反后最大化的…...
Date 日期类的实现(c++)
本文用c实现日期类 将会实现以下函数 bool operator<(const Date& d);bool operator<(const Date& d);bool operator>(const Date& d);bool operator>(const Date& d);bool operator(const Date& d);bool operator!(const Date& d);Date&…...
智能家居10G雷达感应开关模块,飞睿智能uA级别低功耗、超高灵敏度,瞬间响应快
在当今科技飞速发展的时代,智能家居已经逐渐成为人们生活中不可或缺的一部分。从智能灯光控制到智能家电的联动,每一个细节都在为我们的生活带来便利和舒适。而在众多智能家居产品中,10G 雷达感应开关模块以其独特的优势,正逐渐成…...
头歌——人工智能(机器学习 --- 决策树2)
文章目录 第5关:基尼系数代码 第6关:预剪枝与后剪枝代码 第7关:鸢尾花识别代码 第5关:基尼系数 基尼系数 在ID3算法中我们使用了信息增益来选择特征,信息增益大的优先选择。在C4.5算法中,采用了信息增益率…...
一七一、React性能优化方式
在 React 中进行性能优化可以通过多种手段来减少渲染次数、优化渲染效率并减少内存消耗。以下是常见的性能优化方法及示例: 1. shouldComponentUpdate shouldComponentUpdate 是类组件中的生命周期方法,它可以让组件在判断是否需要重新渲染时ÿ…...
编写dockerfile生成镜像,并且构建容器运行
编写dockerfile生成镜像,并且构建容器运行 目录 编写dockerfile生成镜像,并且构建容器运行 概述 一、dockerfile文件详解 Dockerfile的基本结构 Dockerfile的常用指令 二、构建过程 概述 随着微服务应用越来越多,大家需要尽快掌握dock…...
Java项目练习——学生管理系统
1. 整体结构 代码实现了基本的学生管理系统功能,包括登录、注册、忘记密码、添加、删除、修改和查询学生信息。 使用了ArrayList来存储用户和学生信息。 使用了Scanner类来处理用户输入。 2. 主要功能模块 登录 (logIn):验证用户名和密码,…...
sqlserver、达梦、mysql的差异
差异项sqlserver达梦mysql单行注释---- 1、-- ,--后面带个空格 2、# 包裹对象名称,如表、表字段等 [tableName] "tableName"tableName表字段自增IDENTITY(1, 1)IDENTITY(1, 1)AUTO_INCREMENT二进制数据类型IMAGEIMAGE、BLOBBLOB 存储一个汉字需…...
Spring AOP(定义、使用场景、用法、3种事务、事务失效场景及解决办法、面试题)
目录 1. AOP定义? 2.常见的AOP使用场景: 3.Spring AOP用法 3.1 Spring AOP中的几个核心概念 3.1.1 切面、切点、通知、连接点 3.1.2 切点表达式AspectJ 3.2 使用 Spring AOP 的步骤总结 3.2.1 添加依赖: 3.2.2 定义切面和切点(切点和…...
Flutter鸿蒙next 封装对话框详解
✅近期推荐:求职神器 https://bbs.csdn.net/topics/619384540 🔥欢迎大家订阅系列专栏:flutter_鸿蒙next 💬淼学派语录:只有不断的否认自己和肯定自己,才能走出弯曲不平的泥泞路,因为平坦的大路…...
网站建设与维护/如何线上推广自己产品
上一期提到:类似这种自动的数据类型转化被称作隐式类型强制转换 (implicit type coercion)。隐式类型强制转换会造成意外。仍然是上期使用过的例子,隐式类型强制转换造成的结果出现误差。为了避免出现意外,C提供了明式类型转换,允…...
企业网站优化设计应该把什么放在首位/自助优化排名工具
1 ArUco marker ArUco marker是由S.Garrido-Jurado等人在2014年提出的,全称是Augmented Reality University of Cordoba,详见他们的论文《Automatic generation and detection of highly reliable fiducial markers under occlusion》。 它类似于二维码…...
wordpress 调用相册/uc推广登录入口
游戏制作指南(Making Games Tutorial) 点我回总目录 ☚ 3.正式开干(Kicking things off)代码的第一部分相对简单,一旦编写,通常可以在您制作的每个游戏中重复使用。 它们将完成所有无聊的通用任务…...
建湖人才网今日招聘信息/网络优化这个行业怎么样
最近又把linux捡起来了,虚拟机中安个元老级centos5.3继续搞。使用sudo临时获取超管权限命令时,提示”xxx is not in the sudoers file. This incident will be reported“,xxx是你的用户名。 大概意思就是qgc这个用户没有在这个sudoers文件中…...
新华书店的做的数字阅读网站/简述seo和sem的区别
题库来源:安全生产模拟考试一点通公众号小程序 2021年A特种设备相关管理(电梯)考试平台及A特种设备相关管理(电梯)证考试,包含A特种设备相关管理(电梯)考试平台答案和解析及A特种设…...
深圳做网站建设月薪多少/百度站长资源
造价师考试最新推荐:2019年一级造价师考试《造价管理》考试真题(网友版)2019年一级造价师考试《土建计量》考试真题(网友版)2019年一级造价师考试试卷评分标准2020年一级造价师考试时间预测各省2019年一级造价师考试报考人数汇总,人气持续走高2019年一级…...