当前位置: 首页 > news >正文

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 更高效

抖知书老师推荐&#xff1a; 随着 AI 技术的不断发展&#xff0c;视觉信息与语言信息之间的转换变得越来越便捷。在如今的数字化生活中&#xff0c;图像与文字的交互需求愈发旺盛&#xff0c;很多人都希望能轻松将图像内容直接转化为文本描述。今天我们来推荐一款实用的 AI 工…...

SELS-SSL/TLS

一、了解公钥加密&#xff08;非对称加密&#xff09; 非对称加密中&#xff0c;用于加密数据的密钥与用于解密数据的密钥不同。私钥仅所有者知晓&#xff0c;而公钥则可自由分发。发送方使用接收方的公钥对数据进行加密&#xff0c;数据仅能使用相应的私钥进行解密。 你可以将…...

算法:排序

排序算法 1. 简单排序1.1 直接插入排序1.2 冒泡排序1.3 简单选择排序 2. 希尔排序3. 快速排序4. 堆排序5. 归并排序 将文件的内容按照某种规则进行排列。 排序算法的稳定判定&#xff1a;若在待排序的一个序列中&#xff0c; R i R_i Ri​和 R j R_j Rj​的关键码相同&#xf…...

MyBatis-Plus 更新对象时如何将字段值更新为 null

MyBatis-Plus 是一个 MyBatis 的增强工具&#xff0c;在简化开发、提高效率方面表现非常出色。然而&#xff0c;在使用 MyBatis-Plus 更新对象时&#xff0c;默认情况下是不会将字段值更新为 null 的。这是因为 MyBatis-Plus 使用了非空字段策略&#xff08;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 描述&#xff1a;Boost库的一部分&#xff0c;提供了几何计算功能&#xff0c;包括计算两点之间的地面距离。 优势&#xff1a;轻量级、易于集成到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-挖掘数据的无限可能》(数据爬虫采集工具)

豆包&#xff0c;攻克数字是个什么工具&#xff1f; “攻克数字” 指的是 “攻克数字&#xff08;GKData&#xff09;” 这样一款工具。是一款针对网页、APP中数据自动解析转表存入数据库的软件&#xff0c;为数据工作者而生。它是一个不会编程也能用的可视化数据解析为标准二…...

说一说QWidget

目录 关于QWidget 作为界面组件时&#xff0c;你需要有印象的 1. 控制属性 2. 组件状态与交互属性 3. 外观和样式属性 4. 布局与子组件管理属性 5. 图标和光标属性 6. 大小策略属性 作为单独的窗体的属性 写Qt快两年了&#xff0c;也写过一些规模偏大的软件&#xff0c…...

Web3.0技术入门

Web3.0技术入门是一个涉及多个方面和领域的复杂过程&#xff0c;以下是一些关键的步骤和要点&#xff0c;帮助您初步了解并掌握Web3.0技术。 一、了解Web3.0的基本概念 Web3.0也被称为下一代互联网&#xff0c;它是对当前互联网&#xff08;Web2.0&#xff09;的演进和升级。…...

spygalss cdc 检测的bug(二)

当allow_qualifier_merge设置为strict的时候&#xff0c;sg是要检查门的极性的。 如果qualifier和src经过与门汇聚&#xff0c;在同另一个src1信号或门汇聚&#xff0c;sg是报unsync的。 假设当qualifier为0时&#xff0c;0&&src||src1src1&#xff0c;src1无法被gat…...

集合论(ZFC)之 选择公理(Axiom of Choice)注解

直观感受&#xff08;Intuition&#xff09; 集合论&#xff08;ZFC&#xff09;中的 "C" 指的是选择公理&#xff08;Axiom of Choice&#xff09;中的"choice"。简单来说&#xff0c;对于任一非空集合 S&#xff0c;那么存在一个函数 f&#xff0c;选择出…...

JS:字符串操作

目录 1、 字符串分割 1、 字符串分割 var str "123,456,789"; console.log(str.split(,)); // ["123", "456", "789"]...

.NET 一款二进制文件转换Shellcode的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…...

【CSS】——基础入门常见操作

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;CSS引入 二&#xff1a;CSS对元素进行美化 1&#xff1a;style修饰 2&#xff1a;选…...

LuaJIT源码分析(五)词法分析

LuaJIT源码分析&#xff08;五&#xff09;词法分析 lua虽然是脚本语言&#xff0c;但在执行时&#xff0c;还是先将脚本编译成字节码&#xff0c;然后再由虚拟机解释执行。在编译脚本时&#xff0c;首先需要对源代码进行词法分析&#xff0c;把源代码分解为token流。lua的toke…...

005 匿名信

005 匿名信 题目描述 电视剧《分界线》里面有一个片段&#xff0c;男主为了向警察透露案件细节&#xff0c;且不暴露自己&#xff0c;于是将报刊上的字剪下来&#xff0c;剪拼成一封匿名信。现在有一名举报人&#xff0c;希望借鉴这种方式&#xff0c;使用英文报刊完成举报操…...

聊聊Web3D 发展趋势

随着 Web 技术的不断演进&#xff0c;Web3D 正逐渐成为各行业数字化的重要方向。Web3D 是指在网页中展示 3D 内容的技术集合。近年来&#xff0c;由于 WebGL、WebGPU 等技术的发展&#xff0c;3D 内容已经能够直接在浏览器中渲染&#xff0c;为用户提供更加沉浸、互动的体验。以…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...