三、Jenkins相关操作

Jenkins操作

  • 一、插件管理
    • 1.修改公共插件源
    • 2.下载中文汉化插件
      • 2.1 安装插件
      • 2.2 重启
      • 2.3 设置为中文
    • 3.远程部署插件
  • 二、用户权限管理
    • 1.安装权限插件
    • 2.开启权限
    • 3.创建角色
        • 3.1 Global roles
        • 3.2 Item roles
    • 4.创建用户
    • 5.给用户分配角色
  • 三、凭证管理
  • 四、Git管理
    • 1.账号密码方式
      • 1.1 在凭证管理配置
      • 1.2 创建项目
      • 1.3 填写git相关信息
      • 1.4 测试构建项目
    • 2.SHH方式
      • 2.1 生成ssh公钥
      • 2.2 在gitlab配置ssh公钥
      • 2.2 在凭证管理配置
      • 2.3 创建项目
      • 2.4 填写git信息
      • 1.4 测试构建项目
  • 五、项目构建类型
  • 六、Pipeline
    • 1.简介
    • 2.安装插件
    • 3.声明式
      • 3.1 创建流水线
      • 3.2 输入脚本
      • 3.3 脚本讲解
      • 3.4 脚本案例
    • 4.脚本式
      • 4.1 创建流水线
      • 4.2 输入脚本
      • 4.3 脚本讲解
    • 5.流水线脚本生成器
      • 5.1 生成git脚本
      • 5.2 生成编译脚本
      • 5.3 远程部署脚本
  • 七、Jenkins脚本管理
    • 1.流水线使用git项目下脚本
  • 八、触发器
    • 1.内置触发器
      • 1.1 触发远程构建
      • 1.2 其他工程构建触发
      • 1.3 定时构建
      • 1.4 轮询SCM
    • 2.非内置触发器
      • 2.1 Git Hook
        • 2.1.1 安装插件
        • 2.1.2 配置token
        • 2.1.3 GibLab配置WebHook
  • 九、参数化构建
    • 1.Pipeline模板脚本
    • 2.模板参数配置
  • 十、邮件配置
    • 1.安装插件
    • 2.邮箱开启SMTP协议
    • 3.邮箱相关参数配置
      • 3.1 进入配置
      • 3.2 配置系统管理员邮箱
      • 3.3 设置邮箱通知
      • 3.4 Extended E-mail Notification 设置
        • 3.4.1 创建账号密码
        • 3.4.2 填写其他信息
    • 4.定义邮箱模板
    • 5.在Pipeline加入发送邮箱

一、插件管理

  • Jenkins本身不提供很多功能,我们可以通过使用插件来满足我们的使用。例如从Gitlab拉取代码,使用

1.修改公共插件源

在这里插入图片描述

  • https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

2.下载中文汉化插件

注意:由于官方的Localization: Chinese (Simplified)的中文翻译包不全,所以使用了Local汉化插件。

2.1 安装插件

在这里插入图片描述

2.2 重启

  • jenkin地址+/restart就是重启
    • http://192.168.11.132:9095/restart

2.3 设置为中文

在这里插入图片描述
在这里插入图片描述

3.远程部署插件

  • 我们打包好的代码,需要远程部署到其他的服务器上,需要使用这个插件:Deploy to container
    在这里插入图片描述

二、用户权限管理

1.安装权限插件

  • Role-based Authorization Strategy
    在这里插入图片描述

2.开启权限

在这里插入图片描述
在这里插入图片描述

3.创建角色

在这里插入图片描述

  • 角色分为3种类型:Global roles、Item roles(项目角色)、Agent roles(和节点操作权限相关的角色)
    • 其中Global roles拥有最高的权限,如果为它分配job的读写权限,那么用户如果绑定了这个角色,将会允许读取所有的job,不管用户是不是拥有的项目角色的权限。
  • job 和item在jenkins中的概念,都可以看成是jenkins的创建的编译部署项目。
3.1 Global roles

在这里插入图片描述

3.2 Item roles

在这里插入图片描述

  • 通配符:可以看到符合通配符的项目名称的项目。

4.创建用户

在这里插入图片描述
在这里插入图片描述

5.给用户分配角色

在这里插入图片描述

三、凭证管理

注意:如果初始化的时候,没有选择 安装推荐插件,那么需要自己安装凭证管理插件:Credentials Binding

  • 凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方的应用进行交互。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 凭证的类型有五种:
    • Username with password:用户名和密码
    • SSH Username with private key: 使用SSH用户和密钥
    • Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。
    • Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token
    • Certificate:通过上传证书文件的方式
  • 常用的凭证类型有:Username with password(用户密码)和SSH Username with private key(SSH 密钥)

四、Git管理

注意:如果初始化的时候,没有选择 安装推荐插件,那么需要自己安装凭证管理插件:Git
在这里插入图片描述

1.账号密码方式

1.1 在凭证管理配置

在这里插入图片描述

1.2 创建项目

在这里插入图片描述

1.3 填写git相关信息

  • 由于选择了是账号密码方式登录,所以使用git仓库,需要使用http的方式。
    在这里插入图片描述
    在这里插入图片描述

1.4 测试构建项目

在这里插入图片描述
在这里插入图片描述

  • 这样就完成了git配置。
    • 会将git的代码,拉取到/var/jenkins_home/workspace/ittest下面

2.SHH方式

2.1 生成ssh公钥

注意:这里是在jenkins的服务器上生成ssh公钥

# 1.进入docker
docker exec -it jenkins bash
# 2.使用root用户生成公钥和私钥
ssh-keygen -t rsa
# 3.后续一直回车

2.2 在gitlab配置ssh公钥

# 1.在jenkins服务器,查看刚刚生成的ssh公钥
cat /root/.ssh/id_rsa.pub

在这里插入图片描述

2.2 在凭证管理配置

# 1.在jenkins服务器,查看刚刚生成的ssh秘钥
cat /root/.ssh/id_rsa

在这里插入图片描述

2.3 创建项目

在这里插入图片描述

2.4 填写git信息

  • 由于选择了是ssh方式登录,所以使用git仓库,需要使用ssh的方式。
    在这里插入图片描述

1.4 测试构建项目

在这里插入图片描述
在这里插入图片描述

  • 这样就完成了git配置。
    • 会将git的代码,拉取到/var/jenkins_home/workspace/ittest1下面

五、项目构建类型

  • Jenkins中自动构建项目的类型有很多,常用的有以下三种(个人推荐使用流水线类型,因为灵活度非常高):
    • 自由风格软件项目(FreeStyle Project)
      • 这是最灵活的项目类型之一,适用于各种不同类型的软件项目。你可以在自由风格软件项目中执行任何类型的构建、测试和部署任务,而不受限制。
      • 它允许你通过简单的配置界面定义构建步骤,包括构建触发器、构建环境、构建后操作等。
      • 自由风格软件项目不限制你使用的构建工具、脚本语言或操作系统,因此非常适用于各种项目需求。
    • Maven项目(Maven Project)
      • 这种类型的项目专门针对 Java 项目,并且使用 Maven 构建工具。它对 Maven 项目提供了更直观的支持和集成。
      • Maven 项目类型能够自动管理 Maven 项目的依赖关系、生命周期和构建过程。
      • 通过简单的配置,你可以指定 Maven 项目的 POM 文件路径、Maven 版本、构建目标等信息,Jenkins 将自动执行 Maven 构建。
    • 流水线项目(Pipeline Project)
      • 流水线项目是基于 Jenkins Pipeline 的项目类型,它提供了一种可编程的方式来定义整个软件交付流程。
      • 通过 Pipeline DSL(领域特定语言),你可以编写管道脚本来定义构建、测试、部署等操作的流程和逻辑。
      • 流水线项目类型非常适用于复杂的持续集成和持续交付流程,它允许你以代码的方式管理和执行整个软件交付过程,从而实现更高级的自动化和可重复性。

六、Pipeline

1.简介

  • Pipeline,简单来说,就是一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。
  • 使用Pipeline有以下好处:
    • 代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流程。
    • 持久:无论是计划内的还是计划外的服务器重启,Pipeline都是可恢复的。
    • 可停止:Pipeline可接收交互式输入,以确定是否继续执行Pipeline。
    • 多功能:Pipeline支持现实世界中复杂的持续交付要求。它支持fork/join、循环执行,并行执行任务的功能。
    • 可扩展:Pipeline插件支持其DSL的自定义扩展 ,以及与其他插件集成的多个选项。
  • 如何创建 Jenkins Pipeline呢?
    • Pipeline 脚本是由 Groovy 语言实现的,但是我们没必要单独去学习 Groovy
    • Pipeline 支持两种语法:Declarative(声明式)和 Scripted Pipeline(脚本式)语法
      • 这两种语法达到的效果是一样的。
      • 在jenkins2.0之前,使用的是脚本式的,但是在2.0之后,官方推荐使用声明式
    • Pipeline 也有两种创建方法:可以直接在 Jenkins 的 Web UI 界面中输入脚本;也可以通过创建一个 Jenkinsfile 脚本文件放入项目源码库中(一般我们都推荐在 Jenkins 中直接从源代码控制(SCM) 中直接载入 Jenkinsfile Pipeline 这种方法)。

2.安装插件

在这里插入图片描述

  • 安装插件后,创建项目的时候多了“流水线”类型
    在这里插入图片描述

3.声明式

3.1 创建流水线

在这里插入图片描述

3.2 输入脚本

在这里插入图片描述

3.3 脚本讲解

  • agent
    • agent 用于指定 Pipeline 执行的代理节点,也就是指定构建将在哪个节点上运行。any 表示可以在任何可用的节点上执行,也可以指定特定的节点。
    • 在 Pipeline 中,每个阶段(stage)都需要在某个节点上执行,而 agent 用于指定这个节点。如果不指定 agent,则默认会在 Jenkins Master 节点上执行。
  • stages
    • stages 用于定义 Pipeline 的各个阶段,一个阶段代表着 Pipeline 执行过程中的一个逻辑步骤。
    • 在 stages 内部,可以定义多个 stage,每个 stage 中包含了一个或多个执行步骤(steps)。
  • stage(name){}:定义一个步骤,name为步骤名称
  • steps 是用于定义一个阶段(stage)中具体执行步骤的部分。在一个 stage 中,可以包含一个或多个 steps。
    • steps 中可以包含各种不同类型的指令或命令,用于执行构建过程中的具体操作,例如编译代码、运行测试、部署应用等。每个 step 可以是一个 Shell 命令、一个函数调用、一个插件调用或者其他支持的操作。
pipeline {agent anystages {stage('pull code') {steps {echo 'pull code'}}stage('buld project') {steps {echo 'buld project'}}stage('publish project') {steps {echo 'publish project''}}}
}

3.4 脚本案例

  • 可以借助脚本生成器生成
pipeline {agent anystages {stage('pull code') {steps {checkout scmGit(branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: '442d3f64-5dc3-432e-9d89-c53be558be21', url: 'http://192.168.11.132:9980/qingsi_it_group/qingsi_web.git']])}}stage('buld project') {steps {sh 'mvn clean package'}}stage('publish project') {steps {echo '看后面的实际案例'}}}
}

4.脚本式

4.1 创建流水线

在这里插入图片描述

4.2 输入脚本

在这里插入图片描述

4.3 脚本讲解

node {def mvnHomestage('pull code') {steps {echo 'pull code'}}stage('buld project') {steps {echo 'buld project'}}stage('publish project') {steps {echo 'publish project''}}}
}

5.流水线脚本生成器

在这里插入图片描述

5.1 生成git脚本

在这里插入图片描述
在这里插入图片描述

5.2 生成编译脚本

在这里插入图片描述

5.3 远程部署脚本

七、Jenkins脚本管理

  • 正常来说,Jenkins流水线脚本是和项目放到一起。
    • 如果放到jenkins服务器,如果服务器宕机或其他原因,会导致脚本丢失。
  • 文件的默认名称:Jenkinsfile

1.流水线使用git项目下脚本

在这里插入图片描述
在这里插入图片描述

八、触发器

  • 触发器:是指在什么条件下,触发某个项目的构建

1.内置触发器

1.1 触发远程构建

  • 设置一个token,只需要请求jenkins的url+token即可触发构建
    在这里插入图片描述
  • 这里的URL即:http://192.168.11.132:9095/job/ittest/build?token=6666666
    • 在浏览器中,输入地址,即触发构建
  • 注意:需要登陆才可以通过链接触发

1.2 其他工程构建触发

  • 当其他工程完成构建时,触发当前工程项目构建。
    在这里插入图片描述

1.3 定时构建

在这里插入图片描述

  • 定时字符串从左往右分别为: 分 时 日 月 周

例子:
每30分钟构建一次:H代表形参 H/30 * * * * 10:02 10:32
每2个小时构建一次: H H/2 * * *
每天的8点,12点,22点,一天构建3次: (多个时间点中间用逗号隔开): 0 8,12,22 * * *
每天中午12点定时构建一次: H 12 * * *
每天下午18点定时构建一次: H 18 * * *
在每个小时的前半个小时内的每10分钟: H(0-29)/10 * * * *
每两小时一次,每个工作日上午9点到下午5点(也许是上午10:38,下午12:38,下午2:38,下午4:38): H H(9-16)/2 * * 1-5

1.4 轮询SCM

  • 是指定时扫描本地代码仓库的代码是否有变更,如果代码有变更就触发项目构建。
  • 注意:这次构建触发器,Jenkins会定时扫描本地整个项目的代码,增大系统的开销,不建议使用。
    在这里插入图片描述

2.非内置触发器

2.1 Git Hook

  • Git Hook可以有效解决轮询SCM的问题
    在这里插入图片描述
2.1.1 安装插件
  • 安装插件:Generic Webhook Trigger
    在这里插入图片描述
2.1.2 配置token

在这里插入图片描述

2.1.3 GibLab配置WebHook

在新版本的gitlab中,配置webhook时如果jenkins用的是内网地址就会出现以下报错
Url is blocked: Requests to the local network are not allowed
因为新版本中gitlab默认不允许向本地网络发送webhook请求,需要进行以下配置
在这里插入图片描述

  • webhook链接:http://192.168.11.132:9095/generic-webhook-trigger/invoke?token=6666
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

九、参数化构建

  • 有时在项目构建的过程中,我们需要根据用户的输入动态传入一些参数,从而影响整个构建结果,这时我们可以使用参数化构建。
  • 案例:下来演示通过输入gitlab项目的分支名称来部署不同分支项目。

1.Pipeline模板脚本

  • 模板里面需要写入参数,写法:${参数名}
pipeline {agent anystages {stage('pull code') {steps {checkout scmGit(branches: [[name: '*/${branch}']], extensions: [], userRemoteConfigs: [[credentialsId: '442d3f64-5dc3-432e-9d89-c53be558be21', url: 'http://192.168.11.132:9980/qingsi_it_group/qingsi_web.git']])}}stage('buld project') {steps {sh 'mvn clean package'}}stage('publish project') {steps {echo '看后面的实际案例'}}}
}

2.模板参数配置

在这里插入图片描述

  • 这里我们选择文本参数即可
    在这里插入图片描述
  • 加完之后,该项目左边菜单栏会多出一个构建参数的菜单
    在这里插入图片描述
  • 输入对应的分支名,点击Build,即可开始构建

十、邮件配置

  • 应用场景:当我们的项目构建完成,需要向邮箱发送构建结果

1.安装插件

  • 安装Email Extension插件
    在这里插入图片描述

2.邮箱开启SMTP协议

  • 以163邮箱为例,开启SMTP协议
    在这里插入图片描述
  • 点击我已发送后,会显示授权码

3.邮箱相关参数配置

3.1 进入配置

在这里插入图片描述

3.2 配置系统管理员邮箱

  • 系统管理员邮件地址:这里邮箱地址要和后文中的一致
    在这里插入图片描述

3.3 设置邮箱通知

  • 如果使用ssl,那么端口是465。不使用ssl,端口是:25
    在这里插入图片描述

3.4 Extended E-mail Notification 设置

3.4.1 创建账号密码
  • 账号密码:SMTP账号 + SMTP权限码
    在这里插入图片描述
3.4.2 填写其他信息

在这里插入图片描述

  • 参数解释:
    • SMTP server:SMTP服务器地址
    • Default user e-mail suffix:邮箱的后缀
    • Default Content Type:邮件内容格式
    • Credentials:邮箱账号/权限码
    • Default Recipients:默认接收人邮箱

4.定义邮箱模板

  • 邮箱模板,一般都是放到git项目根目录下,名称叫:email.html
  • 下面是常用的有项目模板格式
  • 模板参数解释:参数来自于Jenkins的全局变量
    • BUILD_NUMBER:构建次数
    • BUILD_STATUS:构建状态
    • PROJECT_NAME:项目名称
    • CAUSE:触发原因
    • BUILD_URL:构建日志
    • BUILD_URL:构建地址
    • PROJECT_URL:项目地址
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head><body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"offset="0">
<table width="95%" cellpadding="0" cellspacing="0"style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"><tr><td>(本邮件是程序自动下发的,请勿回复!)</td></tr><tr><td><h2><font color="#0000FF">构建结果 - ${BUILD_STATUS}</font></h2></td></tr><tr><td><br /><b><font color="#0B610B">构建信息</font></b><hr size="2" width="100%" align="center" /></td></tr><tr><td><ul><li>项目名称&nbsp;&nbsp;${PROJECT_NAME}</li><li>构建编号&nbsp;&nbsp;第${BUILD_NUMBER}次构建</li><li>触发原因:&nbsp;${CAUSE}</li><li>构建日志:&nbsp;<a href="${BUILD_URL}console">${BUILD_URL}console</a></li><li>构建&nbsp;&nbsp;Url&nbsp;&nbsp;<a href="${BUILD_URL}">${BUILD_URL}</a></li><li>工作目录&nbsp;&nbsp;<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li><li>项目&nbsp;&nbsp;Url&nbsp;&nbsp;<a href="${PROJECT_URL}">${PROJECT_URL}</a></li></ul></td></tr><tr><td><b><font color="#0B610B">Changes Since LastSuccessful Build:</font></b><hr size="2" width="100%" align="center" /></td></tr><tr><td><ul><li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li></ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat="&nbsp;&nbsp;&nbsp;&nbsp;%p"}</td></tr><tr><td><b>Failed Test Results</b><hr size="2" width="100%" align="center" /></td></tr><tr><td><prestyle="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">$FAILED_TESTS</pre><br /></td></tr><tr><td><b><font color="#0B610B">构建日志 (最后 100行):</font></b><hr size="2" width="100%" align="center" /></td></tr><tr><td><textarea cols="80" rows="30" readonly="readonly"style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea></td></tr>
</table>
</body>
</html>

5.在Pipeline加入发送邮箱

  • 邮箱发送的语法,也可以在生成器中生成
pipeline {agent anystages {stage('pull code') {steps {checkout([$class: 'GitSCM', branches: [[name: '*/${branch}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'b632ed00-fc81-43c8-a746-5aa0673b2658', url: 'git@192.168.66.100:itheima_group/web_demo.git']]])}}stage('code checking') {steps {script {//引入SonarQubeScanner工具scannerHome = tool 'sonar-scanner'}//引入SonarQube的服务器环境withSonarQubeEnv('sonarqube') {sh "${scannerHome}/bin/sonar-scanner"}}}stage('build project') {steps {sh 'mvn clean package'}}stage('publish project') {steps {deploy adapters: [tomcat8(credentialsId: 'fc23e5b7-9930-4dfb-af66-a2a576be52fb', path: '', url: 'http://192.168.66.102:8080')], contextPath: null, war: 'target/*.war'}}}post {always {emailext(subject: '构建通知:${PROJECT_NAME} - Build # ${BUILD_NUMBER} - ${BUILD_STATUS}!',body: '${FILE,path="email.html"}',to: 'xxxxxxxx@qq.com')}}
}

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

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

相关文章

【JavaEE】浅谈线程(一)

线程 前言线程的由来线程是什么线程的属性线程更高效的原因举个例子&#xff08;线程便利性的体现&#xff09; 多线程代码线程并发执行的代码jconsole(观测多线程) 线程的调度问题创建线程的几种方法1&#xff09;通过继承Thread 重写run2&#xff09;使用Runnable接口 重写ru…

软考117-上午题-【计算机网络】-杂题+小结

一、杂题 真题1&#xff1a; 真题2&#xff1a; 真题3&#xff1a; 真题4&#xff1a; 真题5&#xff1a; 真题6&#xff1a; 真题7&#xff1a; 真题8&#xff1a; 真题9&#xff1a; 真题10&#xff1a; 真题11&#xff1a; 真题12&#xff1a; 真题13&#xff1a; 真题14&a…

sqlmap(五)

一、进行文件读写操作 1.1 前提条件 高权限 目录有读写权限 secure_file_priv " " 1.2 测试目标 第一步&#xff1a;用抓包的方式获取请求测试站点的数据包 可以使用Burpsuite 第二步&#xff1a;将抓到的数据包&#xff0c;保存到sqlmap目录下的a.txt 第三步&am…

租用阿里云4核16G服务器优惠价格多少钱?

阿里云4核16G服务器优惠价格26.52元1个月、79.56元3个月、149.00元半年&#xff0c;配置为阿里云服务器ECS经济型e实例ecs.e-c1m4.xlarge&#xff0c;4核16G、按固定带宽 10Mbs、100GB ESSD Entry系统盘&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接打开如下图&a…

JS 利用 webcam访问摄像头 上传到服务器

webcam JS 较为详细的指南 定义标题 <!doctype html> <html> <head><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>How to capture picture from webcam with Webcam.js</title></…

PTA C 1050 螺旋矩阵(思路与优化)

本题要求将给定的 N 个正整数按非递增的顺序&#xff0c;填入“螺旋矩阵”。所谓“螺旋矩阵”&#xff0c;是指从左上角第 1 个格子开始&#xff0c;按顺时针螺旋方向填充。要求矩阵的规模为 m 行 n 列&#xff0c;满足条件&#xff1a;mn 等于 N&#xff1b;m≥n&#xff1b;且…

【保姆级教程】如何在 Windows 上实现和 Linux 子系统的端口映射

写在前面 上次分享【保姆级教程】Windows上安装Linux子系统&#xff0c;搞台虚拟机玩玩&#xff0c;向大家介绍了什么是虚拟机以及如何在Windows上安装Linux虚拟机。对于开发同学而言&#xff0c;经常遇到的一个问题是&#xff1a;很多情况下代码开发需要依赖 Linux 系统&…

Centos7下docker安装jenkins【使用docker-compose图文教程】

个人记录 前置条件&#xff1a;安装Docker与Docker-compose Centos7安装Docker与Docker-compose【图文教程】 查看jenkins最新的版本 https://www.jenkins.io/download/ 配置docker-compose.yml vim docker-compose.yml按i进行编辑模式&#xff0c;粘贴如下内容。把image里…

常见现代卷积神经网络(Pytorch 09)

本章将介绍现代的 卷积神经网络架构&#xff0c;许多现代卷积神经网络的研究都是建立在这一章的基础上的。在本章中的每一个模型都曾一度占据主导地位&#xff0c;其中许多模型都是 ImageNet竞赛 的优胜者。ImageNet竞赛自2010年以来&#xff0c;一直是计算机视觉中监督学习进展…

.NET8 和 Vue.js 的前后端分离

在.NET 8中实现前后端分离主要涉及到两个部分&#xff1a;后端API的开发和前端应用的开发。后端API通常使用ASP.NET Core来构建&#xff0c;而前端应用则可以使用任何前端框架或技术栈&#xff0c;比如Vue.js、React或Angular等。下面是一个简化的步骤指南&#xff0c;帮助你在…

深入浅出 -- 系统架构之Keepalived搭建双机热备

Keepalived重启脚本双机热备搭建 ①首先创建一个对应的目录并下载keepalived安装包&#xff08;提取码:s6aq&#xff09;到Linux中并解压&#xff1a; [rootlocalhost]# mkdir /soft/keepalived && cd /soft/keepalived [rootlocalhost]# wget https://www.keepalived.…

隐私计算实训营学习九:隐语多方安全计算在安全核对的行业实践

文章目录 一、业务背景&#xff1a;安全核对产生的土壤二、产品方案&#xff1a;从试点到规模化的路三、技术共建&#xff1a;与隐语的共同成长 一、业务背景&#xff1a;安全核对产生的土壤 业务背景&#xff1a;很多粗放使用数据的方式被新出台的法律法规所规范&#xff0c;…