定制 Jenkins 镜像说明

news/2024/4/27 3:10:11/文章来源:https://blog.csdn.net/songxi_bo/article/details/130267217

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。

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

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

相关文章

java定位系统源码,通过独特的射频处理,配合先进的位置算法,可以有效计算出复杂环境下的人员与物品的活动信息

智慧工厂人员定位系统源码&#xff0c;区域电子围栏管控源码 文末获取联系&#xff01; 在工厂日常生产活动中&#xff0c;企业很难精准地掌握访客和承包商等各类人员的实际位置&#xff0c;且无法实时监控巡检人员的巡检路线&#xff0c;当厂区发生灾情或其他异常状况时&#…

postman安装

目录 下载、安装 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。 Postman原是Chrome浏览器的插件&#xff0c;可以模拟浏览器向后端服务器发起任何形式(如:get、post)的HTTP请求 使用Postman还可以在发起请求时&#xff0c;携带一些请求参数、请求头等信息…

WebSocket+Vue+SpringBoot实现语音通话

参考文章 整体思路 前端点击开始对话按钮后&#xff0c;将监听麦克风&#xff0c;获取到当前的音频&#xff0c;将其装化为二进制数据&#xff0c;通过websocket发送到webscoket服务端&#xff0c;服务端在接收后&#xff0c;将消息写入给指定客户端&#xff0c;客户端拿到发送…

日本PSE认证日本的電気用品安全法METI备案

日本的電気用品安全法&#xff08;PSE认证&#xff09;法规要求日本的采购商在购进商品后一个月内必须向日本METI注册申报&#xff0c;并必须将采购商名称或ID标在产品上&#xff0c;以便在今后产品销售过程中进行监督管理&#xff0c;完成后将获得電気用品製造事業届出書&…

Java基础学习(10)

Java基础学习 一、JDK8时间类1.1 Zoneld时区1.2 Instant时间戳1.3 ZonedDateTime1.4 DateTimeFormatter1.5 日历类时间表示1.6 工具类1.7 包装类JDK5提出的新特性Integer成员方法 二、集合进阶2.1 集合的体系结构2.1.1 Collection 2.2collection的遍历方式2.2.1 迭代器遍历2.2.…

元宇宙场景下的实时互动RTI技术能力构建

元宇宙可谓是处在风口浪尖&#xff0c;无数的厂商都对元宇宙未来抱有非常美好的憧憬。正因如此&#xff0c;许许多多厂商都在用他们自己的方案&#xff0c;为元宇宙更快、更好的实现&#xff0c;在自己的领域贡献力量。LiveVideoStack 2022北京站邀请到了 ZEGO 即构科技的解决方…

17.集合

集合 集合类是Java数据结构的实现。Java的集合类是java.util包中的重要内容&#xff0c;它允许以各种方式将元素分组&#xff0c;并定义了各种使这些元素更容易操作的方法。Java集合类是Java将一些基本的和使用频率极高的基础类进行封装和增强后再以一个类的形式提供。集合类是…

【Vue2源码】响应式原理

【Vue2源码】响应式原理 文章目录 【Vue2源码】响应式原理Vue响应式的核心设计思路整体流程响应式中的关键角色检测变化注意事项响应式原理数据观测重写数组7个变异方法增加__ob__属性__ob__有两大用处&#xff1a; Vue.js 基本上遵循 MVVM&#xff08;Model–View–ViewModel&…

【Cartopy基础入门】如何丝滑的加载Geojson数据

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 Cartopy基础入门 【Cartopy基础入门】Cartopy的安装 【Cartopy基础入门】如何丝滑的加载Geojson数据 文章目录 Cartopy基础入门一、Geojson数据来源二…

camunda的manual task节点用途

Camunda的Manual Task用于在流程中暂停执行&#xff0c;直到人工干预完成某个任务。与User Task不同&#xff0c;Manual Task没有分配给特定用户或用户组&#xff0c;而是需要手动启动并指定下一步流程。 Manual Task可以用于以下场景&#xff1a; 1、流程执行需要等待人工干…

安全狗入选2023年福建省数字经济核心产业领域创新企业名单

近日&#xff0c;福建省数字福建建设领导小组办公室公布了入选2023年全省数字经济核心产业领域创新企业名单。 作为国内云原生安全领导厂商&#xff0c;安全狗凭借综合表现与优势入选名单&#xff0c;荣膺“未来独角兽”称号。 据悉&#xff0c;此次对“未来独角兽”的评选条件…

Linux文件类型与属性

一、文件类型 Linux 系统下一共分为 7 种文件类型。通过 stat 命令或者 ls 命令来查看文件类型。 - &#xff1a;普通文件 d &#xff1a;目录文件 c &#xff1a;字符设备文件 b &#xff1a;块设备文件 l &#xff1a;符号链接文件 s &#xff1a;套接字文件 p &…

线性模型的介绍

一、背景 在一个理想的连续世界中&#xff0c;任何非线性的东西都可以被线性的东西来拟合&#xff0c;所以理论上线性模型可以模拟物理世界中的绝大多数现象。 线性模型&#xff08;Linear Model&#xff09;是机器学习中应用最广泛的模型&#xff0c;指通过样本特征的线性组…

【并发基础】一篇文章带你彻底搞懂Java线程中断的底层原理——interrupt()、interrupted()、isInterrupted()

目录 〇、Java线程中断与阻塞的区别 0.1 线程中断 0.2 线程阻塞 一、线程的中断 二、中断方法 2.1 void interrupt() 2.1.1 可中断的阻塞 2.1.2 不可中断的阻塞 2.1.3 实践案例 2.2 boolean isInterrupted() 2.3 boolean interrupted() 2.4 代码案例 三、源码分析…

指定GPU运行python程序

一、命令行运行python程序时 1、首先查看哪些GPU空闲&#xff0c;nvidia-smi显示当前GPU使用情况。 nvidia-smiGPU&#xff1a;编号&#xff0c;这里是0和1 Fan&#xff1a;风扇转速&#xff0c;在0到100%之间变动&#xff0c;第一个是29% Name&#xff1a;显卡名&#xff…

部署LVS-NAT群集实验

一、 实验准备 负载调度器&#xff1a;内网关 ens33&#xff1a;192.168.109.12&#xff0c;外网关 ens37&#xff1a;12.0.0.1外网 Web节点服务器1&#xff1a;192.168.109.13 Web节点服务器2&#xff1a;192.168.109.14 NFS服务器&#xff1a;192.168.109.11 客户端&#xf…

基于 Windows 安装 ESP32 Arduino 软件开发环境

ESP32 Arduino 源码库&#xff1a;arduino-esp32ESP32 Arduino 环境搭建说明&#xff1a;About Arduino ESP32 其他软件环境需求&#xff1a; Git 环境 1、安装 Arduino 软件 可在 Arduino 官网 获取 Windows 端 Arduino 安装包&#xff0c;如下&#xff1a; 使用如下 .exe 一…

中文编程最高境界,不用编程,会用excel就会用,香不香?

一直以来&#xff0c;关于中文编程的争议从未消停过。现如今&#xff0c;中文编程发展又是如何&#xff1f; ★为了实现中文编程&#xff0c;从未停下脚步 我们知道&#xff0c;中国人一直以来为了实现中文编程付出了不懈的努力&#xff0c;前前后后研发了几十种中文编程语言。…

ModuleNotFoundError: No module named ‘d2l’

目录 1. 下载李沐老师分享的源代码 step1&#xff1a;下载李沐老师分享的源代码&#xff1a; step3&#xff1a;Anaconda Prompt中安装d2l(这个l是英文) step4&#xff1a;运行代码&#xff0c;成功&#xff1a; &#xff08;番外&#xff09;ModuleNotFoundError: No mod…

R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习技术应用

Meta分析是针对某一科研问题&#xff0c;根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法&#xff0c;对来源不同的研究成果进行收集、合并及定量统计分析的方法&#xff0c;最早出现于“循证医学”&#xff0c;现已广泛应用于农林生态&#xff0c;资源环境等方面。…