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

一、下载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流水线详解 - 知乎

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初学者也能轻松使用的原型设计工具

原型是之前所有 UX 设计工作的合并,是一种单一、可视、功能的产品,用于验证假设和测试设计。作为产品经理或设计师,原型设计工具是必不可少的合作伙伴。目前网站原型设计中可以使用的工具有很多,比如 Axure、Sketch、XD、Figma 等…

Vue2 —— 学习(一)

目录 一、了解 Vue (一)介绍 (二)Vue 特点 (三)Vue 网站 1.学习: 2.生态系统: 3.团队 二、搭建 Vue 开发环境 (一)安装与引入 Vue 1.直接引入 2.N…

微信小程序认证,备案,域名,证书,上线全流程

1.微信公众平台完成小程序认证和备案。 配置服务类目: 2.购买域名并完成域名实名认证和备案,公安备案。 3.购买https证书。 下载证书: 4.创建目录 mkdir -p /home/app/exam/ssl。上传证书到该目录下。 5.创建nginx配置文件: vim /usr/local…

09 Python进阶: JSON 数据解析、日期和时间

JSON 数据解析 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。 Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数: json.dumps(): 对数据进行编码。 json.loads(): 对数据进行解码。 Python 编码为 JSON …

Hugging Face入门(一)

简介 本文主要内容: Hugging Face介绍环境搭建敲两个例子 Hugging Face介绍 Hugging Face 是一家法美合资公司,总部位于纽约市,成立于2016年。它由法国企业家Clment Delangue、Julien Chaumond和Thomas Wolf在纽约市创立,最初是…

精品丨PowerBI负载测试和容量规划

当选择Power BI作为业务报表平台时,如何判断许可证的选择是否符合业务需求,价格占了主导因素。 Power BI的定价是基于SKU和服务器内核决定的,但是很多IT的负责人都不确定自己公司业务具体需要多少。 不幸的是,Power BI的容量和预期…

HiveSQL如何生成连续日期剖析

HiveSQL如何生成连续日期剖析 情景假设: 有一结果表,表中有start_dt和end_dt两个字段,,想要根据开始和结束时间生成连续日期的多条数据,应该怎么做?直接上结果sql。(为了便于演示和测试这里通过…

golang slice总结

目录 概述 一、什么是slice 二、slice的声明 三、slice的初始化、创建 make方式创建 创建一个包含指定长度的切片 创建一个指定长度和容量的切片 创建一个空切片 创建一个长度和容量都为 0 的切片 new方式创建 短声明初始化切片 通过一个数组来创建切片 声明一个 …

C++可变参数模板

可变参数模板 一个可变参数模板就是一个接受可变数目参数的模板函数或模板类。 可变数目的参数被称为参数包。 存在两种参数包: 模板参数类,表示零个或多个模板参数;函数参数包,表示零个或多个函数参数。 我们用一个省略号来…

雷弗流体创新技术装备与您与您相约2024第13届生物发酵展

参展企业介绍 保定雷弗流体科技有限公司于2010年1月成立。为创新型企业,荣获国家级高新技术企业、国家级专精特新小巨人企业、河北省单项冠军企业、组织部巨人计划创业团队等荣誉称号。 保定雷弗流体科技有限公司现有职工180人,其中工程技术人员53人。现…

GitHub入门与实践

ISBN: 978-7-115-39409-5 作者:【日】大塚弘记 译者:支鹏浩、刘斌 页数:255页 阅读时间:2023-08-05 推荐指数:★★★★★ 好久之前读完的了,一直没有写笔记。 这本入门Git的书籍还是非常推荐的,…

【服务器部署篇】Linux下安装Docker容器

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过大学刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是&#xff0…

X服务器远程连接问题解决:Bad displayname ““‘或Missing X server or $DISPLAY

X服务器远程连接问题 报错1 ImportError: this platform is not supported: (failed to acquire X connection: Bad displayname "", DisplayNameError()) Try one of the following resolutions: * Please make surethat you have an X server running, and that …

基于无线物联网的智能配电监控系统设计应用

摘要:阐述基于电力物联网的智能配电监控系统的特点,探讨物联网结构及其关键技术,电力物联网下的智能配电监控系统设计,包括整体结构设计、硬件和软件系统设计。 安科瑞薛瑶瑶18701709087 关键词:电力物联网&#xff…

AI水下颜色校正解决方案,助力企业打造水下视觉盛宴

水下摄影作为一种独特且富有挑战性的拍摄方式,正受到越来越多旅行者和摄影师的青睐。然而由于海水的光线折射和金属成分的影响,水下拍摄的照片和视频往往存在严重的偏色问题,无法真实还原水下世界的美丽与神奇。美摄科技凭借深厚的技术积累和…

【动态规划】【01背包】Leetcode 416. 分割等和子集

【动态规划】【01背包】Leetcode 416. 分割等和子集 ---------------🎈🎈416. 分割等和子集 题目链接🎈🎈------------------- 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集&#xff0…

顺序表的应用之通讯录

学习了顺序表之后,我们也得知道它的实际用途吧!所以,我们今天来学习一下通讯录的实现。 typedef struct personInfo SLDataType; contact.h #define NAME_MAX 20 #define GENDER_MAX 20 #define GTEL_MAX 20 #define ADDR_MAX 100 #include&…

芯课堂 | JScope虚拟示波器使用说明

​1. 首先需要安装Jlink的驱动,即安装JLink_Windows_V634e之后才能安装JScope,一般这个能正常使用Jlink下载、仿真说明你的Jlink驱动已经正常安装 2. 需要安装Jscope,即安装Setup_JScope_V611m,安装完成之后能看到以下画面 3. 新建…

ip地址电脑哪里看?一文揭秘

在数字化和网络化的今天,IP地址对于电脑用户而言具有至关重要的意义。无论是进行网络配置、故障排除还是安全管理,了解如何查看电脑的IP地址都是一项必备技能。虎观代理将深入解析IP地址的概念,详细指导用户如何在电脑上查看IP地址&#xff0…

红黑树插入机制深度剖析与实践指南

红黑树插入机制深度剖析与实践指南 一、红黑树的基本概念二、插入操作的初步2.1 RB-INSERT-FIXUP过程2.2 循环的不变性2.2.1 情况1:叔节点是红色2.2.2情况2和情况3:叔节点是黑色 三、插入操作的复杂性分析四、伪代码4.1 RB-INSERT 过程4.2 RB-INSERT-FIX…