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

【Jenkins流水线搭建】

Jenkins流水线搭建

  • 01、SpringBoot项目 - Jenkins基于Jar持续集成搭建文档
    • 基于手动方式发布项目
    • 基于dockerfile
    • 基于jenkins + dockerfile + jenkinsfile +pieline
    • 基于jenkins + jar方式的发布
    • 01、环境说明
    • 01、准备项目
    • 02、准备服务器
    • 03、安装git
    • 04、安装jdk1.8
    • 05、安装maven依赖
    • 06、安装jenkins
    • 07、启动jenkins
    • 08、解锁 Jenkins
    • 09、自定义Jenkins
    • 10、创建管理员账号
    • 11、实例配置
    • 12、Jenkins控制面板
    • 13、配置镜像源
    • 14、Jenkins插件安装
      • 1、jekins汉化插件安装
      • 2、安装Credentials Binding插件
      • 3、git插件安装
    • 15、配置凭据 - 全局Git账号和密码管理
    • 16、配置环境变量
      • 配置jdk
      • 配置Maven
    • 17、Jenkins关联环境变量和设置常量
  • 02、基于Jenkins的jar的方式发布和部署
    • 01、准备项目
    • 02、创建代码仓库
    • 03、项目关联仓库
    • 04、在jenkins创建一个任务
    • 05、编写shell脚本和jenkins关联执行
    • 06、开始构建即可
    • 代码
  • 02、基于Jenkins的docker的方式发布和部署
    • 01、Pipeline插件安装
    • 02、利用Pipeline自动化发布服务
      • 1、点击新建任务,填写项目名称,选择流水线,点击确认
      • 2、开始构建
      • 3、配置端口映射
      • 4、配置项目名称
      • 5、该有的参数都已经准备完毕,接下来要做的就是拉取代码
      • 6、项目配置好以后
    • 03、创建Jenkinsfile
    • 04、然后在jenkins的控制台中

01、SpringBoot项目 - Jenkins基于Jar持续集成搭建文档

基于手动方式发布项目

  • 开发代码

  • 打包-jar

  • 把jar上传到服务器

  • 把上一次的服务杀掉,停止

  • 启动运行新的jar

基于dockerfile

  • 开发代码

  • 编写Dockerfile (一次性)

  • mvn clean package 自动生成镜像

  • 手动或者使用idea Docker插件,创建容器,启动容器

    学习成本:Docker

基于jenkins + dockerfile + jenkinsfile +pieline

  • 开发代码
  • 搭建jenkins环境 (一次性)
  • 编写Dockerfile (一次性) 和Jenkinsfile规则(一次性)
  • 上传代码
  • jenkins控制台启动服务 (触发器)

学习成本:Docker ,Jenkins ,Pieline 触发器

基于jenkins + jar方式的发布

  • 开发代码

  • 搭建jenkins环境 (一次性)

  • 创建一个任务 ,创建shell脚本

  • 上传代码

  • jenkins控制台启动服务 (触发器)

01、环境说明

服务所需软件部署地址
持续集成服务Jenkins 2.319.1、Maven3.6.3,Git47.107.225.126
应用测试服务JDK1.847.107.225.126

01、准备项目

准备一个springboot + Dockerfile项目

02、准备服务器

服务器配置建议:4core + 8G 或者 4core + 16G 越高越好。

提醒:学生机就不要来试了,估计docker都跑不起来就卡死了

03、安装git

查看是否已经安装
git --version
使用yml安装
yum -y install git

image-20220111150549668

04、安装jdk1.8

查看当前是否有安装jdk

  • maven和项目,jekenis都java项目肯定需要java环境
java -version

安装jdk1.8

yum install java-1.8.0-openjdk* -y
  • 安装完以后,默认的路径是: /usr/lib/jvm
  • 提醒:建议不要安装jdk11。

05、安装maven依赖

  • 1、前往官网下载自己想要的maven包

    地址: http://maven.apache.org/download.cgi

    各版本地址:https://archive.apache.org/dist/maven/maven-3/

    我以apache-maven-3.6.3-bin.tar.gz为例,

    下载地址: https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

  • 2、将maven上传liunx服务器上,我这里上传到了/www/servers,当前的安装目录root如下:cd /www/servers

    mkdir -p /www/servers/maven
    cd /www/servers/maven
    
  • 3、上传完毕,执行解压

    wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
    

    如果下载很慢建议用手动的方式上传到/www/servers/maven

    #解压文件
    tar -xzvf apache-maven-3.6.3-bin.tar.gz
    #创建目录,用于存放maven
    mkdir -p /opt/maven
    #将解压完的maven文件剪切到刚刚创建的目录下
    mv apache-maven-3.6.3/* /opt/maven 
    

    image-20220111151351229

    建议配置:阿里云的maven镜像。https://developer.aliyun.com/mvn/guide 步骤:在conf/setttings.xml中配置如下:

    <mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>aliyunrepositoty</name><url>https://maven.aliyun.com/repository/public</url>
    </mirror>
    

    image-20220111233516650

  • 4、配置maven环境变量
    安装完maven,还需要配置java和maven的环境变量。就放在文件的尾部即可

    首先打开环境配置文件

    vim /etc/profile
    

    配置内容

    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk 
    export MAVEN_HOME=/opt/maven 
    export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
    

    执行保存生效

    source /etc/profile 
    

    查看maven版本

    mvn -v 
    
    [root@iZwz9gi039o35ikykbyj1tZ maven]# mvn -v
    Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
    Maven home: /opt/maven
    Java version: 1.8.0_312, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/jre
    Default locale: zh_CN, platform encoding: UTF-8
    OS name: "linux", version: "3.10.0-1160.49.1.el7.x86_64", arch: "amd64", family: "unix"
    

06、安装jenkins

1、官网地址

https://www.jenkins.io/download/

相关文章:

【Jenkins流水线搭建】

Jenkins流水线搭建 01、SpringBoot项目 - Jenkins基于Jar持续集成搭建文档基于手动方式发布项目基于dockerfile基于jenkins + dockerfile + jenkinsfile +pieline基于jenkins + jar方式的发布01、环境说明01、准备项目02、准备服务器03、安装git04、安装jdk1.805、安装maven依赖…...

PHP 基础介绍

PHP 学习资料 PHP 学习资料 PHP 学习资料 PHP 是一种广泛使用的开源服务器端脚本语言&#xff0c;尤其适合 Web 开发&#xff0c;能轻松嵌入 HTML 中&#xff0c;生成动态网页内容。接下来&#xff0c;让我们一起了解 PHP 的基础内容。 一、PHP 的安装与配置 在开始编写 PH…...

DeepSeek如何重塑我的编程学习:计算机新生的AI实践

目录 &#x1f680;前言&#x1f31f;邂逅DeepSeek&#xff1a;从困惑到惊喜&#x1f4af;初学编程的困境&#x1f4af;DeepSeek的优势 &#x1f58a;️DeepSeek在编程学习中的运用&#x1f4af;注释&#x1f4af;算法逐步分析&#x1f4af;调试帮助&#x1f4af;跨语言迁移学习…...

spring boot和spring cloud的关系

Spring Boot和Spring Cloud之间的关系可以概括为构建和扩展的关系&#xff0c;其中Spring Boot提供了基础&#xff0c;而Spring Cloud在此基础上提供了分布式系统和微服务架构所需的扩展和工具。以下是两者关系的详细阐述&#xff1a; 一、基础与扩展 Spring Boot&#xff1a…...

ThreadLocal原理和存在问题

ThreadLocal 的工作原理 ThreadLocal 是 Java 提供的一个类&#xff0c;用于在多线程环境下存储线程局部变量。每个线程都可以独立地更改存储在其 ThreadLocal 变量中的值&#xff0c;而不会影响其他线程中的变量副本。ThreadLocal 的实现原理基于 Thread 类中的 ThreadLocal.…...

用Echarts的柱状图实现圆柱体效果

用Echarts的柱状图实现圆柱体效果 在数据可视化的世界里&#xff0c;Echarts凭借其强大的功能和丰富的特性&#xff0c;成为众多开发者的首选工具。本文将深入探讨如何利用Echarts的柱状图来实现独特的圆柱体效果&#xff0c;通过详细剖析代码&#xff0c;让大家了解其中的实现…...

Docker 常用命令基础详解(一)

一、Docker 初相识 在当今数字化时代&#xff0c;软件开发和部署的效率与灵活性成为了关键因素。Docker&#xff0c;作为一款开源的应用容器引擎&#xff0c;犹如一颗璀璨的明星&#xff0c;照亮了软件开发与部署的道路&#xff0c;为开发者们带来了前所未有的便利。它就像是一…...

Java并发中的CAS机制:原理、应用与挑战(通俗易懂版)

上一期文章内容&#xff1a;Java并发中的乐观锁与悲观锁&#xff0c; 本期文章我们来讲一下Java并发中的CAS机制 一、从银行账户案例理解CAS CAS 是一种乐观锁机制&#xff0c;用于在不使用锁的情况下实现多线程对共享资源的并发访问。 它包含三个操作数&#xff1a;内存位置&a…...

腾讯发布混元-3D 2.0: 首个开源高质3D-DiT生成大模型

在之前的文章中已经和大家介绍过腾讯HunYuan-3D 1.0&#xff0c;感兴趣的小伙伴可以点击下面链接阅读~ HunYuan-3D 是首个开源高质3D-DiT生成大模型&#xff0c;几何与纹理解藕生成&#xff0c;一键将创意具象化。 2.0模型架构图及介绍 2.0模型将几何和纹理生成解耦&#xff0…...

【机器学习】线性回归与一元线性回归

线性回归与一元线性回归 V1.1线性回归问题线性方程的最优解一元线性回归一元线性回归的方程一元线性回归距离衡量方法一元线性回归的最优化求解一元线性回归的最小二乘法解法 V1.1 线性回归问题 线性回归问题就是找一条线或超平面&#xff0c;并使用线或超平面来描述数据分布…...

哈希表-两个数的交集

代码随想录-刷题笔记 349. 两个数组的交集 - 力扣&#xff08;LeetCode&#xff09; 内容: 集合的使用 , 重复的数剔除掉&#xff0c;剩下的即为交集&#xff0c;最后加入数组即可。 class Solution {public int[] intersection(int[] nums1, int[] nums2) {Set<Integer…...

望远镜成像系统--科学评价光学镜头

望远镜是一种利用透镜或反射镜以及其他光学器件观测遥远物体的光学仪器。其原理是通过透镜的折射或反射镜的反射&#xff0c;将光线聚焦成像&#xff0c;再经过一个放大目镜进行观察。日常生活中的光学望远镜又称“天文望远镜”。1608年&#xff0c;荷兰的一位眼镜商汉斯利伯希…...

服务器延迟给视频网站造成的影响

在数字化时代中&#xff0c;网络视频已经成为人们日常娱乐和获取信息的重要平台&#xff0c;网络视频的流畅性会影响着用户的体验度&#xff0c;那么&#xff0c;当服务器出现延迟会对视频网站造成哪些影响呢&#xff1f;本文就来共同了解一下吧&#xff01; 当所使用的服务器由…...

C++算法竞赛基础语法-9

快速排序是一种高效的排序算法&#xff0c;由C. A. R. Hoare在1960年提出&#xff0c;基本思想是分治法&#xff08;Divide and Conquer&#xff09;策略&#xff0c;通过递归将一个大问题分解为若干个较小的子问题&#xff0c;然后合并这些子问题的解来解决原始问题 快速排序…...

国产编辑器EverEdit - 极简追梦人的福音:迷你查找

1 迷你查找 1.1 应用场景 某些场景下&#xff0c;用户不希望调出复杂的查找对话框&#xff0c;此时可以使用迷你查找窗口。 1.2 使用方法 选择主菜单查找 -> 迷你查找&#xff0c;或使用快捷键Ctrl Alt F&#xff0c;会在右上角弹出迷你查找窗口&#xff0c;如下图所示…...

Flutter 异步编程利器:Future 与 Stream 深度解析

目录 一、Future&#xff1a;处理单次异步操作 1. 概念解读 2. 使用场景 3. 基本用法 3.1 创建 Future 3.2 使用 then 消费 Future 3.3 特性 二、Stream&#xff1a;处理连续异步事件流 1. 概念解读 2. 使用场景 3. 基本用法 3.1 创建 Stream 3.2 监听 Stream 3.…...

数据结构 day05

数据结构 day05 5. 队列5.3. 链式队列5.3.1. 特征5.3.2. 代码实现 6. 双向链表6.1. 特性6.2. 代码实现 5. 队列 5.3. 链式队列 5.3.1. 特征 逻辑结构&#xff1a;线性结构 存储结构&#xff1a;链式存储 操作&#xff1a;创建、入列、出列、判空、清空 5.3.2. 代码实现 头文…...

股票数据接口API实例代码python、JAVA等多种语言演示免费获取实时数据、历史数据、CDMA、KDJ等指标数据配有API说明文档

​ 本文中所有接口均可直接在浏览器打开获取数据&#xff0c;为了便于大家验证有效性&#xff0c;已经做好了超链接&#xff0c;直接点击即可&#xff01; 沪深两市股票列表 API接口链接&#xff08;可点击验证&#xff09;&#xff1a;https://api.mairui.club/hslt/list/b…...

【Map vs Set】:Java数据存储的“双子星”对决

个人主页&#xff1a;♡喜欢做梦 欢迎 &#x1f44d;点赞 ➕关注 ❤️收藏 &#x1f4ac;评论 目录 &#x1f370;一、搜索 &#x1f36e;1.概念 &#x1f36e;2.模型 &#x1f370;二、Map &#x1f368;1.什么是Map&#xff1f; &#x1f368;2.Map的实例化 &…...

ollama+langchain+deepseek本机跑通大模型

一、部署deepseek Ollama&#xff0c;这是是一个开源的大语言模型平台&#xff0c;它允许用户在本地环境中运行、创建和共享大型语言模型。Ollama提供了丰富的功能和特性&#xff0c;使得用户可以在自己的计算机上轻松地部署和运行大型语言模型。官网&#xff1a;https://ollam…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...