【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/

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python包的管理

管理python包 python能跻身最欢迎编程语言前列的一个主要原因是python有着活跃的社区提供丰富的包&#xff0c;诸如numpy&#xff0c;pandas&#xff0c;scikit-learn等等。 python的包都存放PyPI中&#xff0c;PyPI即Python Package Index&#xff0c;是python的软件仓库。所…

2025常用的SEO工具有哪些?

在互联网时代&#xff0c;如何让自己的网站或内容脱颖而出&#xff0c;成为许多企业和个人站长们最关注的问题。而在这个过程中&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;作为一种有效的提升网站曝光度和吸引流量的手段&#xff0c;已经成为了网站运营的核心之一。对…

消息中间件深度剖析:以 RabbitMQ 和 Kafka 为核心

在现代分布式系统和微服务架构的构建中&#xff0c;消息中间件作为一个不可或缺的组件&#xff0c;承担着系统间解耦、异步处理、流量削峰、数据传输等重要职能。尤其是在面临大规模并发、高可用性和可扩展性需求时&#xff0c;如何选择合适的消息中间件成为了开发者和架构师们…

深入解析SVG图片原理:从基础到高级应用

文章目录 引言一、SVG基础概念1.1 什么是SVG&#xff1f;1.2 SVG的优势 二、SVG的基本结构2.1 SVG文档结构2.2 常用SVG元素 三、SVG的工作原理3.1 坐标系与变换3.2 路径与曲线3.3 渐变与滤镜 四、SVG的高级应用4.1 动画与交互4.2 数据可视化4.3 响应式设计 五、SVG的优化与性能…

【读点论文】Rewrite the Stars将svm的核技巧映射到高维空间,从数理逻辑中丰富特征维度维度

Rewrite the Stars Abstract 最近的研究已经引起了人们对网络设计中“星形运算”(逐元素乘法)的未开发潜力的关注。虽然直观的解释比比皆是&#xff0c;但其应用背后的基本原理在很大程度上仍未被探索。我们的研究试图揭示星形操作在不扩大网络的情况下将输入映射到高维非线性…

C++中常用的十大排序方法之4——希尔排序

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【&#x1f60a;///计算机爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于C中常用的排序方法之4——希尔排序的相…

初阶c语言(练习题,猜随机数,关机程序)

目录 第一题&#xff0c;使用函数编写一个随机数&#xff0c;然后自己猜&#xff0c;猜随机数 第二道题&#xff08;关机程序&#xff09; 实现代码&#xff08;关机程序&#xff09; 实现代码&#xff08;猜数字&#xff09; 前言&#xff1a; 学习c语言&#xff0c;学习…

离线量化算法和工具 --学习记录1

离线量化算法和工具 一、离线量化的基础概念1.1、基本流程1.2、量化的优点和缺点1.3、如何生产一个硬件能跑的量化模型1.4、PTQ的概念以及和QAT的区别1.5、离线量化的标准流程1.6、校准数据的选择1.7、量化模式的选择1.8、校准方式的选择1.9、量化算法的选择1.10、写入量化参数…

封装一个sqlite3动态库

作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、项目案例 二…

ROS进阶:使用URDF和Xacro构建差速轮式机器人模型

前言 本篇文章介绍的是ROS高效进阶内容&#xff0c;使用URDF 语言&#xff08;xml格式&#xff09;做一个差速轮式机器人模型&#xff0c;并使用URDF的增强版xacro&#xff0c;对机器人模型文件进行二次优化。 差速轮式机器人&#xff1a;两轮差速底盘由两个动力轮位于底盘左…

移远通信边缘计算模组成功运行DeepSeek模型,以领先的工程能力加速端侧AI落地

近日&#xff0c;国产大模型DeepSeek凭借其“开源开放、高效推理、端侧友好”的核心优势&#xff0c;迅速风靡全球。移远通信基于边缘计算模组SG885G&#xff0c;已成功实现DeepSeek模型的稳定运行&#xff0c;并完成了针对性微调。 目前&#xff0c;该模型正在多款智能终端上进…

resultType,jdbcType,parameterType区别

1. resultType 用途&#xff1a; 用于定义 SQL 查询结果的返回类型。 直接将查询结果映射到指定的 Java 类型&#xff08;基本类型、POJO 或 Map&#xff09;。 特点&#xff1a; 要求数据库字段名与 Java 对象的属性名完全一致&#xff08;或通过别名匹配&#xff09;。 …

字符设备驱动开发

驱动就是获取外设、传感器数据和控制外设。数据会提交给应用程序。 Linux 驱动编译既要编写一个驱动&#xff0c;还要编写一个简单的测试应用程序。 而单片机下驱动和应用都是放在一个文件里&#xff0c;也就是杂在一块。而 Linux 则是分开了。 一、字符设备驱动开发流程 Lin…

【免费送书活动】《MySQL 9从入门到性能优化(视频教学版)》

本博主免费赠送读者3本书&#xff0c;书名为《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》。 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 这本书已经公开…

UE求职Demo开发日志#32 优化#1 交互逻辑实现接口、提取Bag和Warehouse的父类

1 定义并实现交互接口 接口定义&#xff1a; // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "UObject/Interface.h" #include "MyInterActInterface.generated.h…

DeepSeek 指导手册(入门到精通)

第⼀章&#xff1a;准备篇&#xff08;三分钟上手&#xff09;1.1 三分钟创建你的 AI 伙伴1.2 认识你的 AI 控制台 第二章&#xff1a;基础对话篇&#xff08;像交朋友⼀样学交流&#xff09;2.1 有效提问的五个黄金法则2.2 新手必学魔法指令 第三章&#xff1a;效率飞跃篇&…

Next.js【详解】获取数据(访问接口)

Next.js 中分为 服务端组件 和 客户端组件&#xff0c;内置的获取数据各不相同 服务端组件 方式1 – 使用 fetch export default async function Page() {const data await fetch(https://api.vercel.app/blog)const posts await data.json()return (<ul>{posts.map((…

【kafka系列】生产者

目录 发送流程 1. 流程逻辑分析 阶段一&#xff1a;主线程处理 阶段二&#xff1a;Sender 线程异步发送 核心设计思想 2. 流程 关键点总结 重要参数 一、核心必填参数 二、可靠性相关参数 三、性能优化参数 四、高级配置 五、安全性配置&#xff08;可选&#xff0…

使用Python爬虫实时监控行业新闻案例

目录 背景环境准备请求网页数据解析网页数据定时任务综合代码使用代理IP提升稳定性运行截图与完整代码总结 在互联网时代&#xff0c;新闻的实时性和时效性变得尤为重要。很多行业、技术、商业等领域的新闻都可以为公司或者个人发展提供有价值的信息。如果你有一项需求是要实时…

JAVA安全—Shiro反序列化DNS利用链CC利用链AES动态调试

前言 讲了FastJson反序列化的原理和利用链&#xff0c;今天讲一下Shiro的反序列化利用&#xff0c;这个也是目前比较热门的。 原生态反序列化 我们先来复习一下原生态的反序列化&#xff0c;之前也是讲过的&#xff0c;打开我们写过的serialization_demo。代码也很简单&…