定制 Jenkins 镜像说明
Dockerfile模板示例
FROM jenkins/jenkins:2.332.4-jdk8
MAINTAINER jason
USER root
RUN sed -i ‘s/deb.debian.org/mirrors.aliyun.com/g’ /etc/apt/sources.list
&& apt update
&& apt install ca-certificates tzdata -y
&& rm -rf /var/cache/apt/*
&& ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&& echo “Asia/Shanghai” > /etc/timezone
&& apt install bash curl wget ansible nano -y
&& rm -rf /var/cache/apt/*
USER jenkins
COPY plugins.txt /usr/share/jenkins/ref/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt
ENV JAVA_OPTS=“-Djenkins.install.runSetupWizard=false -Djenkins.CLI.disabled=true”
官方镜像选择
jenkins/jenkins:2.332.4-jdk8
修改Master执行器数量
executors.groovy文件内容示例:
import jenkins.model.*
Jenkins.instance.setNumExecutors(0) ## 分布式构建这里建议设置为0
批量安装插件
plugins.txt文件内容示例:
plugin-util-api:2.17.0
ssh-slaves:1.821.vd834f8a_c390e
ansible:1.1
git-server:1.11
gitlab-plugin:1.5.36
jakarta-activation-api:2.0.1-2
role-strategy:587.588.v850a_20a_30162
commons-text-api:1.10.0-27.vb_fa_3896786a_7
javax-activation-api:1.2.0-5
htmlpublisher:1.31
credentials-binding:523.525.vb_72269281873
authentication-tokens:1.4
configuration-as-code:1569.vb_72405b_80249
structs:324.va_f5d6774f3a_d
kubernetes-credentials:0.10.0
display-url-api:2.3.6
okhttp-api:4.9.3-108.v0feda04578cf
workflow-job:1189.va_d37a_e9e4eda_
ldap:2.11
envinject-api:1.199.v3ce31253ed13
run-condition:1.5
command-launcher:1.2
publish-over:0.22
ws-cleanup:0.43
mina-sshd-api-core:2.9.2-50.va_0e1f42659a_a
pipeline-build-step:488.v8993df156e8d
dtkit-api:3.0.2
code-coverage-api:3.0.5
docker-java-api:3.2.13-37.vf3411c9828b9
pipeline-input-step:466.v6d0a_5df34f81
cloudbees-folder:6.740.ve4f4ffa_dea_54
workflow-durable-task-step:1190.vc93d7d457042
ace-editor:1.1
pipeline-milestone-step:111.v449306f708b_7
conditional-buildstep:1.4.2
scm-api:631.v9143df5b_e4a_a
matrix-project:772.v494f19991984
docker-workflow:563.vd5d2e5c4007f
snakeyaml-api:1.33-90.v80dcb_3814d35
bootstrap5-api:5.2.0-1
mailer:435.438.v5b_81173f5b_a_1
jsch:0.1.55.61.va_e9ee26616e7
timestamper:1.21
plain-credentials:143.v1b_df8b_d3b_e48
localization-zh-cn:1.0.24
token-macro:321.vd7cc1f2a_52c8
groovy:453.vcdb_a_c5c99890
metrics:4.1.6.2
workflow-api:1200.v8005c684b_a_c6
popper2-api:2.11.6-1
branch-api:2.1071.v1a_188a_562481
maven-plugin:3.21
prism-api:1.28.0-2
momentjs:1.1.1
envinject:2.901.v0038b_6471582
forensics-api:1.15.1
config-file-provider:3.10.0
jdk-tool:63.v62d2fd4b_4793
workflow-cps-global-lib:609.vd95673f149b_b
pipeline-stage-view:2.28
docker-plugin:1.3.0
checks-api:1.7.5
workflow-multibranch:716.vc692a_e52371b_
ssh-agent:327.v230ecd01f86f
workflow-cps:2729.2732.vda_e3f07b_5a_f8
kubernetes-client-api:6.4.1-208.vfe09a_9362c2c
parameterized-trigger:2.45
ssh-credentials:277.280.v1e86b_7d0056b_
git:4.12.1
kubernetes:3724.v0920c1e0ec69
permissive-script-security:0.7
jquery3-api:3.6.1-1
script-security:1190.v65867a_a_47126
email-ext:2.92
pipeline-graph-analysis:202.va_d268e64deb_3
jquery:1.12.4-1
workflow-basic-steps:994.vd57e3ca_46d24
durable-task:504.vb10d1ae5ba2f
commons-lang3-api:3.12.0-36.vd97de6465d5b_
workflow-scm-step:408.v7d5b_135a_b_d49
trilead-api:1.67.vc3938a_35172f
antisamy-markup-formatter:159.v25b_c67cd35fb_
build-pipeline-plugin:1.5.8
pipeline-model-api:2.2121.vd87fb_6536d1e
docker-commons:1.21
apache-httpcomponents-client-4-api:4.5.13-138.v4e7d9a_7b_a_e61
font-awesome-api:6.1.2-1
workflow-support:839.v35e2736cfd5c
bouncycastle-api:2.27
workflow-aggregator:596.v8c21c963d92d
nodejs:1.5.1
variant:59.vf075fe829ccb
credentials:1087.1089.v2f1b_9a_b_040e4
jakarta-mail-api:2.0.1-2
caffeine-api:2.9.3-65.v6a_47d0f4d1fe
javax-mail-api:1.6.2-5
mina-sshd-api-common:2.9.2-50.va_0e1f42659a_a
pam-auth:1.10
jaxb:2.3.7-1
pipeline-rest-api:2.28
pipeline-groovy-lib:612.v84da_9c54906d
external-monitor-job:203.v683c09d993b_9
jackson2-api:2.14.2-319.v37853346a_229
pipeline-stage-step:293.v200037eefcd5
pipeline-model-definition:2.2121.vd87fb_6536d1e
pipeline-model-extensions:2.2121.vd87fb_6536d1e
git-client:3.12.4
workflow-step-api:639.v6eca_cd8c04a_a_
emailext-template:1.5
sshd:3.242.va_db_9da_b_26a_c3
thinBackup:1.11
echarts-api:5.3.3-1
javadoc:226.v71211feb_e7e9
sonar:2.14
xunit:3.1.2
workflow-cps-global-lib-http:2.20.0
data-tables-api:1.12.1-3
matrix-auth:3.1.5
junit:1143.1145.v81b_b_9579a_019
publish-over-ssh:1.24
localization-support:1.2
ssh:2.6.1
git-parameter:0.9.18
ant:481.v7b_09e538fcca
dashboard-view:2.466.vdfefd95a_b_f8d
locale:180.v207501dff9b_a_
build-timeout:1.24
resource-disposer:0.20
pipeline-stage-tags-metadata:2.2121.vd87fb_6536d1e
jersey2-api:2.37-1
获取服务器已安装插件列表的方法:
$ export JENKINS_HOST=admin:admin@192.168.100.10:8080
$ curl -sSL “http://$JENKINS_HOST/pluginManager/api/xml?depth=1&xpath=///shortName|///version&wrapper=plugins” | perl -pe ‘s/.?([\w-]+).?([^<]+)()(</\w+>)+/\1 \2\n/g’|sed ‘s/ /😕’ > plugins.txt
常用插件介绍
Parameterized Trigger
参数化构建。
ThinBackup
数据备份和恢复。
Role-based Authorization Strategy
基于角色的权限管理。
Git
Jenkins 安装中默认安装 Git 插件,所以不需要单独安装。利用 git 工具可以从 github、gitlab 等等的地址下载源码。
Docker
Jenkins 安装中默认安装 Docker 插件,所以不需要单独安装。利用 Docker 插件可以设置 Docker 环境,运行 Docker 命令,配置远程 Docker 仓库凭据等。
Kubernetes
Kubernetes 插件的目的是能够使用 Kubernetes 集群动态配置 Jenkins 代理(使用Kubernetes调度机制来优化负载),运行单个构建,等构建完成后删除该代理。这里我们需要用到这个插件来启动 Jenkins Slave 代理镜像,让代理执行 Jenkins 要执行的 Job。
Kubernetes Cli
Kubernetes Cli 插件作用是在执行 Jenkins Job 时候提供 kubectl 与 Kubernetes 集群交互环境。可以在 Pipeline 或自由式项目中允许执行 kubectl 相关命令。它的主要作用是提供 kubectl 运行环境,当然也可以提供 helm 运行环境。
Config File Provider
Config File Provider 插件作用就是提供在 Jenkins 中存储 properties、xml、json、settings.xml 等信息,可以在执行 Pipeline 过程中可以写入存储的配置。例如,存入一个 Maven 全局 Settings.xml 文件,在执行 Pipeline Job 时候引入该 Settings.xml ,这样 Maven 编译用的就是该全局的 Settings.xml。
Pipeline Utility Steps
这是一个操作文件的插件,例如读写 json、yaml、pom.xml、Properties 等等。在这里主要用这个插件读取 pom.xml 文件的参数设置,获取变量,方便构建 Docker 镜像。
Git Parameter
能够与 Git 插件结合使用,动态获取 Git 项目中分支信息,在 Jenkins Job 构建前提供分支选项,来让项目执行人员选择拉取对应分支的代码。
Maven Integration
Maven 插件,用于编译 Maven 项目和安装 Maven 工具到任务中。
SonarQube Scanner
SonarQube 是一种用于连续检查代码质量的开源平台,该插件可轻松与 SonarQube 集成。
Email Extension Template
用于设置邮件模板。
Docker Pipeline
通过管道构建和使用Docker容器。
HTTP Request
这个插件发送一个http请求到一个带有一些参数的url。
相关文章:
定制 Jenkins 镜像说明
Dockerfile模板示例 FROM jenkins/jenkins:2.332.4-jdk8 MAINTAINER jason USER root RUN sed -i ‘s/deb.debian.org/mirrors.aliyun.com/g’ /etc/apt/sources.list && apt update && apt install ca-certificates tzdata -y && rm -rf /var/cach…...
【离散数学】测试五 图论
1. n层正则m叉树一共有()片树叶。 A. nm B. mn C. mn 正确答案: B 2. 下图是一棵最优二叉树 A. 对 B. 错 正确答案: B 3. 要构造权为1,4,9,16,25,36,49,64,81,100一棵最优二叉树,则必须先构造权为5,9,16,25,36,49,64,81,100一棵最优二叉树. A. 对 B. 错 …...
根据cadence设计图学习硬件知识 day03 了解 一些芯片 和 数据手册下载的地方
1. MT53D512M32D2DS 芯片(动态随机存取存储器)的技术指标 1.1 16n Prefetch (预加载) (n --芯片位宽) DDR 体系 链接:DDR扫盲—-关于Prefetch(预取)与Burst(突发)的深入讨论_ddr prefetch_qq_25814297-npl的博客-CSDN博客 1.2 每个通…...
计算机组成原理——第五章中央处理器(中)
辞别再无相见月,终是一人度春秋 文章目录 前言5.4.1 硬布线控制器的设计5.4.2 微程序控制器的基本原理5.4.3 微指令的设计5.4.4 微程序控制单元的设计 前言 本文主要写的是控制器的设计,控制器的设计分为硬部件控制器(就是用纯硬件的方式来实现的一种控…...
ImageJ 用户手册——第三部分(ImageJ扩展)
ImageJ 用户手册-第三部分 ImageJ扩展14. 宏指令(Macros)宏程序设计 15. 脚本( Scripts)JavaScript编程 16. 插件( Plugins)开发ImageJ插件 17. 用其他语言编写脚本Fiji脚本编辑器 18. 从命令行运行ImageJ …...
RK3399平台开发系列讲解(PCI/PCI-E)PCIE相关配置说明
🚀返回专栏总目录 文章目录 一、DTS 配置二、menuconfig 配置三、cmdline 配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将介绍在使用 RK3399 平台 PCIE 时候的配置。 一、DTS 配置 ep-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 此项是设置 PCIe…...
NAS私有云存储 - 搭建Nextcloud私有云盘并公网远程访问
文章目录 摘要视频教程1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 转载自内网穿透工具的文章:使用Nextcl…...
Revit问题:墙体被楼板剪切及材质库被锁定问题
一、Revit 墙体被楼板剪切怎么办? 建模的时候画的墙总是到楼板就停了,这是为什么?明明顶部约束到标高2了,这种情况如何解决? 首先来分析问题产生的原因是,我们在绘制楼板的时候选择了用楼板剪切重复部分的墙体。 解决…...
CPU信息查询与CPU测试方法总结
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请征得博主同意并附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/mainmaster/article/details/130267689 未经允许不能拷贝本文章内容发布到其他相关载体上。 CPU信息查询 我们知道在嵌入式系统…...
ChatGPT时代,我们可能站到了自然语言编程的大门口
ChatGPT大火,我现在有种感觉:我们可能站到了自然语言编程的门口,一脚下去,也许能把门踹开。 当然,也可能会踢到一块铁板。 回顾我们的编程之路,基本上就是一个编程门槛不断降低的历史。 最早的一批前辈们…...
深入理解AMQP协议
一.AMQP 是什么 AMQP(Advanced Message Queuing Protocol, 高级消息队列协议)是一个提供统一消息服务的 应用层标准高级 消息队列协议,是 应用层协议的一个 开放标准,为面向消息的中间件设计,是一个进程间传递 异步消息…...
大型体检管理系统源码:适用于大中型医院或独立体检中心
一套专业的体检管理系统源码,是医院、体检中心等单位开展体检业务的得力助手。它将以往人工操作的健康体检过程所得到信息转换成全信息化的电脑管理,使体检过程更为流畅、更有条理,更加便于管理,从而实现体检业务管理的自动化、信…...
ACM 1000 | 简单的a+b
文章目录 0x00 前言 0x01 题目描述 0x02 问题分析 0x03 代码设计 0x04 完整代码 0x05 运行效果 0x06 参考文献 0x07 总结 0x00 前言 C 语言网不仅提供 C 语言,还包括 C 、 java 、算法与数据结构等课程在内的各种入门教程、视频录像、编程经验、编译器教程及…...
系统分析师选择题笔记
目录 1、知识产权与标准化 1.1 保护范围与对象(★★★★) 1.2 保护期限(★) 1.3 知识产权人确定(★★★) 1.4 侵权判断(★★★) 1.5 标准的分类(★) 1.6 标准代号的识别(★) 2、系统配置与性能评价 2.1 系统性能概述 2.2 系统性能(性能指标)(★…...
MySQL隐式类型转换
当运算符与不同类型的操作数一起使用时,会发生类型转换以使操作数兼容。有些转换是隐式发生的。例如,MySQL会根据需要自动将字符串转换为数字,反之亦然。 转换规则 如果一个或两个参数都为NULL,则比较结果为NULL 。但是相等比较…...
IT知识百科:什么是SSID?
一、什么是SSID SSID(Service Set Identifier)是无线网络中的一个重要概念,它是一个用于标识无线局域网(WLAN)的名称。SSID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称。在无线…...
OpenAI-ChatGPT最新官方接口《从0到1生产最佳实例》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(十一)(附源码)
Production Best Practices 生产最佳实例 前言Introduction 导言Setting up your organization 设置您的组织Managing billing limits 管理计费限额API keys API密钥Staging accounts 演示账户 Building your prototype 构建您的原型Additional tips 其它技巧 Techniques for i…...
2023 IT市场权威榜单|美创数据库防火墙斩获“新一代信息技术创新产品”
4月20日,由赛迪顾问主办的“2023 IT市场权威榜单”评选结果正式发布,美创数据库防火墙斩获新一代信息技术创新产品! 美创数据库防火墙是一款抵御并消除由于应用程序业务逻辑漏洞或者缺陷所导致的数据库安全问题的专业级数据库安全产品&#x…...
30个超级有用的JavaScript单行代码
在这篇文章中,我列出了一个系列的 30 个 JavaScript 单行代码,它们在使用 vanilla js(≥ ES6)进行开发时非常有用。它们也是使用该语言在最新版本中为我们提供的所有功能来解决问题的优雅方式。 我将它们分为以下5大类࿱…...
【GitLab私有仓库】在Linux上用Gitlab搭建自己的私有库并配置cpolar内网穿透
前言 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。 Gitlab是被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理, Gitlab主要针对…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...
Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...
