Centos7使用docker安装Jenkins(含pipeline脚本语句)

news2024/10/7 19:22:11

一、下载Jenkins

docker pull jenkins/jenkins:lts

二、启动Jenkins

docker run \
  -u root \
  --rm \
  -d \
  -p 8081:8080 \
  -p 50000:50000 \
  -v /root/docker/jenkins/var/jenkins_home:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /usr/bin/docker:/usr/bin/docker \
  -v /usr/lib64/libltdl.so.7:/usr/lib/libltdl.so.7 \
  --name jenkins \
  jenkins/jenkins:lts

三、配置镜像加速器

cd /root/docker/jenkins/var/jenkins_home/
vi hudson.model.UpdateCenter.xml

目录是启动时挂载的目录,然后将url修改https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json ,内容如下:

四、验证Jenkins

ip + 端口  等待一段时间

http://192.168.32.16:8081

等待之后就是登录界面,docker logs -f jenkins 可以查看启动时的临时密码:

 

继续安装插件,网络问题,插件安装堪忧啊~~后续使用还是得将插件 安装好。

五、配置jenkins中文模式

Jenkins----基于 CentOS 或 Docker 安装部署Jenkins并完成基础配置_centos7 docker jenkins-CSDN博客

六、pipeline脚本语句

pipeline {
    agent any
    
    environment {
        NAME = 'CXB' // 全局变量,会在所有的stage中生效
        //AWS_ACCESS_KEY_ID = credentials('txt1')
        //AWS_SECRET_ACCESS_KEY = credentials('txt2')
    }
    
    options {
        timeout(time: 1, unit: 'HOURS') //超时时间1小时,如果不加unit参数默认为1分
        timestamps() 
        buildDiscarder(logRotator(numToKeepStr: '3'))  //保留三个历史构建版本
        quietPeriod(10) //  流水线静默期,也就是触发流水线后等待一会在执行。 注意手动触发的构建不生效
        //retry(3) // 流水线失败重试次数
    }
    
    parameters {
        string(name: 'DEPLOY_ENV', defaultValue: 'st', description: '执行构建时需要手动配置字符串类型参数,之后赋值给变量')
        text(name: 'DEPLOY_TEXT', defaultValue: 'One\nTwo\nThree\n', description: '执行构建时需要提供文本参数,之后赋值给变量')
        booleanParam(name: 'DEBUG_BUILD', defaultValue: true, description: '布尔型参数')
        choice(name: 'CHOICES', choices: ['one', 'two', 'three'], description: '选择形式列表参数')
        //imageTag(name: 'DOCKER_IMAGE', image:  'kubernetes/kubectl', filter: '.*', defaultTag: '', registry: 'https://192.168.32.16', credentialId: 'harbor-account', tagOrder: 'NATURAL', description: '获取镜像名称与tag')
        gitParameter(name: 'BRANCH', branch: 'main', branchFilter: 'origin/(.*)', defaultValue: 'main', description: 'Branch for build and deploy, 获取git仓库分支列表,必须有git引用', quickFilterEnabled: false, selectedValue: 'NONE', sortMode: 'NONE', tagFilter: '*', type: 'PT_BRANCH')
        
    }
    
    triggers {
        cron('H */10 * * 1-5')   //周一到周五每隔四个小时执行一次
        //cron('H/2 * * * *')   //每隔2分钟执行一次
        //cron('H * * * *')   //每隔1小时执行一次
        //目前支持的状态有 SUCCESS、UNSTABLE、FAILURE、NOT_BUILT、ABORTED 等。
        //upstream(upstreamProjects: 'Build', threshold: hudson,model,Result.SUCCESS)  //当env构建成功时构建这个流水线
    }
    
    stages {
        stage("Build") {
            environment { // 定义在stage 中的变量只会在当前stage生效
                MY_URL = "WWW.BAIDU.COM"
            }
            agent {
                docker "maven:3-alpine"
            }
            
            input {
                message "还继续么?"
                ok "继续"
                submitter "alice,bob"
                parameters {
                    string(name: 'PERSON', defaultValue: 'Mr Jenkins',  description: 'who should say  hello')
                }
            }
            
            steps {
                //echo "${AWS_ACCESS_KEY_ID}"
                //echo "${AWS_SECRET_ACCESS_KEY}"
                echo 'hello maven'
                sh 'mvn -version'
                echo "${MY_URL}"
                echo "${NAME}"
                
                echo "hello,${PERSON}, nice to meet you."
                
                
                echo "$env"
                echo "$env.BUILD_ID"
                echo "$env.BUILD_NUMBER"
                echo "$env.BUILD_TAG"
            }
        }
        
        stage('Git') {
            steps {
                git branch: "${BRANCH}", credentialsId: 'ebe42f70-146f-4a4b-8090-eded24a77173', url: 'https://gitlab.e-ai-edu.com/zswl-developer/bi/deepbi.git' //使用gitParameter,必须有这个
            }
        }
        
        stage('Test') {
            agent { 
                docker 'openjdk:8-jre' 
            }
            //options {   //定义在这里这对这个stage生效
            //    timeout(time: 2, unit: 'SECONDS') //超时时间2秒
            //    timestamps()                     //所有输出每行都会打印时间戳
            //    retry(3)    //流水线失败后重试次数
            //}
            steps {
                echo 'Hello, JDK'
                sh 'java -version'
                echo "${NAME}"
                sh "env"
            }
        }
        
        stage('When') {
            when {
                anyOf {
                    branch 'main' //多分支流水线,分支为才会执行。
                    environment name: 'DEPLOY_ENV', value: 'st'
                }
            }
            steps {
                echo 'Deployinng 66666'
            }
        }
    }
    
    post {
        success {
            echo 'success 1234'
        }
        failure {
            echo 'failure 5678'
        }
        always {
            echo 'i will always say 999'
        }
    }
}

史上最全 Jenkins Pipeline流水线详解 - 知乎

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

渲染一帧特效需要多少钱?云渲染特效每帧成本

特效渲染的成本受到诸多因素的影响,每帧的渲染费用是评估整个项目预算的重要依据。随着云渲染技术的发展,其高效率和可伸缩性赢得了业界的广泛关注。对于影视制作公司和独立创作者而言,掌握云渲染特效的单帧成本是管理和优化预算分配的关键。…

Datacom HCIP笔记-路由策略与路由控制 之二

路由策略和策略的区别? 路由策略: 操作的对象是路由表条目, 实现路由过滤,从而实现访问控制,引入时过滤,发送和接收路由时过滤。 通过配置cost,来实现路径的控制。 策略路由: 对…

Redis数据库③主从复制+哨兵模式+集群模式

一.Redis主从复制 1.概念 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(Master),后者称为从节点(Slave);数据的复制是单向的,只能由主节点到从节点。 默认情况下,每台…

国内ChatGPT大数据模型

在中国,随着人工智能技术的迅猛发展,多个科技公司和研究机构已经开发出了与OpenAI的ChatGPT类似的大型语言模型。这些模型通常基于深度学习技术,尤其是Transformer架构,它们在大量的文本数据上进行训练,以理解和生成自…

若依 ruoyi-vue 接口挂载获取Resources静态资源文件权限校验

解决小程序图片打包过大,放置后端,不引用ngnix、minio等组件,还能进行权限校验 package com.huida.web.controller.common.app;import com.huida.common.core.controller.BaseController; import com.huida.common.utils.file.FileUtils; imp…

c++的学习之路:14、list(1)

本章讲一下如何使用list,代码在文章末 目录 一、list介绍 二、增 三、删 四、查和改 五、交换 六、代码 一、list介绍 首先还是看一看官方文档的介绍如下图,如下方五点: 1. list是可以在常数范围内在任意位置进行插入和删除的序列式…

线程、多线程 、线程安全、线程通信、线程池 --java学习笔记

目录 什么是线程? 什么是进程? 线程的生命周期 线程的6种状态互相转换 什么是多线程? 如何在程序中创建出多条线程? 多线程的注意事项 多线程的创建方式一:继承Thread类 方式一优缺点: 代码演示: 多线程的创建方式二:实现Runnable接口 方…

n3.队列

1.队列 和堆栈一样,队列也属于受限制的线性表。 和堆栈不同的是,堆栈只能在一端进行出栈和入栈 (先进后出),而队列只能在尾部插入,在头部删除(先进先出)**。 队列的操作 ——入…

8个免费视频素材网站,让你永久告别资源付费!

视频剪辑,需要用到各种类型的视频素材,一定要收藏好这8个网站,免费下载,让你永久告别资源付费,白嫖真爽。 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 菜鸟图库虽然是个设计素材网站,但…

【编译原理】手工打造语法分析器

重点: 语法分析的原理递归下降算法(Recursive Descent Parsing)上下文无关文法(Context-free Grammar,CFG) 关键点: 左递归问题深度遍历求值 - 后续遍历 上一篇「词法分析器」将字符串拆分为…

idea的后端环境配置

首先,在你刚打开idea时红色箭头所指的是你进行配置的地方,接下来我把具体步骤说一下 1,直接点击箭头所指的地方就会出现如图界面,然后点击Tomcat server,使其展开点击第一个 第二步取消勾选,第三步选择bin的上一级然后…

14届蓝桥杯省赛 C/C++ B组 T8 整数删除(双向链表,堆)

瞬间定位一个数的左边或者右边,需要用到双向链表。 在过程中不断维护最小值,需要用到堆。 所以定义一个pair类型优先队列,每次取出堆顶进行删除,并且同时让删除元素的左右元素加上其值。 同时需要注意,在删除元素之后…

Spring Cloud Hoxton.SR7 Supported Boot Version: 2.3.2.RELEASE

1、地址 Spring Cloudhttps://docs.spring.io/spring-cloud/docs/Hoxton.SR7/reference/html/ 2、 截图

探索K-近邻算法(KNN):原理、实践应用与文本分类实战

第一部分:引言与背景 KNN算法在机器学习领域的重要性及其地位 KNN算法作为机器学习中的基石之一,由于其概念直观、易于理解并且不需要复杂的模型训练过程,被广泛应用于多种场景。它在监督学习中占据着特殊的位置,尤其适用于实时…

Oracle数据库启动顺序

Oracle数据库启动顺序 启动数据库 首先使用oracle用户登录Linux,用lsnrctl status查看监听状态 1、:进入sqlplus $ sqlplus /nolog SQL> 2:使用sysdab角色登录sqlplus SQL> conn /as sysdba 3:启动数据库 SQL> startup …

宝藏推荐|GitHub登顶项目之中文排行榜!开源资料,天花板级别!

🚀近年来,开源的力量愈发显现其重要性, 不仅推动了技术的发展,更改变了世界的面貌。 马斯克,这位科技界的巨星也多次强调开源的重要性, 他深知只有共享知识,才能推动人类文明的进步&#x1f…

Atcode搜索

D - Medicines on Grid (atcoder.jp) 这是一道搜索题目,我们使用bfs来做,因为本题目没让你求最小路径,使用dfs也可以,这里使用bfs。 本题目核心思想如下: 小高要从起点到终点,要求其在能量大于等于0时到…

搜索与图论——拓扑排序

有向图的拓扑排序就是图的宽度优先遍历的一个应用 有向无环图一定存在拓扑序列(有向无环图又被称为拓扑图),有向有环图一定不存在拓扑序列。无向图没有拓扑序列。 拓扑序列:将一个图排成拓扑序后,所有的边都是从前指…

k8s1.28-helm安装kafka-Raft集群

参考文档 [Raft Kafka on k8s 部署实战操作 - 掘金 (juejin.cn)](https://juejin.cn/post/7349437605857411083?fromsearch-suggest)部署 Raft Kafka(Kafka 3.3.1 及以上版本引入的 KRaft 模式)在 Kubernetes (k8s) 上,可以简化 Kafka 集群…

分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测

分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测 目录 分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据…