您现在的位置是:首页 >学无止境 >定制 Jenkins 镜像说明网站首页学无止境
定制 Jenkins 镜像说明
Dockerfile模板示例
FROM jenkinsci/blueocean:1.24.8
MAINTAINER Varden
USER root
RUN sed -i ‘s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g’ /etc/apk/repositories
RUN apk update
RUN apk upgrade
RUN apk add --no-cache ca-certificates tzdata && rm -rf /var/cache/apk/*
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo “Asia/Shanghai” > /etc/timezone
RUN apk add --no-cache bash curl wget nano && rm -rf /var/cache/apk/*
USER jenkins
COPY executors.groovy /usr/share/jenkins/ref/init.groovy.d/executors.groovy ## 修改Master执行器数量
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” ## 禁用安装向导和CLI
官方镜像选择
建议使用的Docker映像是jenkinsci/blueocean image(来自 Docker Hub repository)。 该镜像包含当前的长期支持 (LTS) 的Jenkins版本 (可以投入使用) ,捆绑了所有Blue Ocean插件和功能。这意味着你不需要单独安装Blue Ocean插件。
jenkinsci/blueocean:1.24.8
修改Master执行器数量
executors.groovy文件内容示例:
import jenkins.model.*
Jenkins.instance.setNumExecutors(0) ## 分布式构建这里建议设置为0
批量安装插件
plugins.txt文件内容示例:
pipeline-stage-tags-metadata:1.9.1
pam-auth:1.6
pipeline-graph-analysis:1.11
workflow-cps:2.93
favorite:2.3.3
handy-uri-templates-2-api:2.1.8-1.0
workflow-api:2.46
jenkins-design-language:1.24.8
blueocean-pipeline-editor:1.24.8
variant:1.4
workflow-scm-step:2.13
sshd:3.0.3
token-macro:266.v44a80cf277fd
okhttp-api:3.14.9
trilead-api:1.0.13
workflow-support:3.8
pipeline-rest-api:2.19
pipeline-build-step:2.15
blueocean-i18n:1.24.8
github-branch-source:2.11.2
pipeline-stage-view:2.19
blueocean:1.24.8
jquery3-api:3.6.0-2
blueocean-pipeline-scm-api:1.24.8
github:1.34.0
localization-zh-cn:1.0.24
blueocean-github-pipeline:1.24.8
blueocean-events:1.24.8
bouncycastle-api:2.20
localization-support:1.1
font-awesome-api:5.15.3-4
workflow-job:2.41
apache-httpcomponents-client-4-api:4.5.13-1.0
pipeline-model-extensions:1.9.1
blueocean-bitbucket-pipeline:1.24.8
blueocean-config:1.24.8
ssh-credentials:1.19
mailer:1.34
matrix-auth:2.6.8
command-launcher:1.2
blueocean-web:1.24.8
ldap:2.7
matrix-project:1.19
blueocean-dashboard:1.24.8
jackson2-api:2.12.4
workflow-basic-steps:2.24
display-url-api:2.3.5
pubsub-light:1.16
pipeline-model-api:1.9.1
jjwt-api:0.11.2-9.c8b45b8bb173
credentials:2.5
snakeyaml-api:1.29.1
htmlpublisher:1.25
credentials-binding:1.27
git-server:1.9
popper2-api:2.9.3-1
handlebars:3.0.8
momentjs:1.1.1
blueocean-core-js:1.24.8
bootstrap4-api:4.6.0-3
branch-api:2.6.5
echarts-api:5.1.2-9
scm-api:2.6.5
caffeine-api:2.9.2-29.v717aac953ff3
resource-disposer:0.16
pipeline-model-definition:1.9.1
jdk-tool:1.0
cloudbees-bitbucket-branch-source:2.9.10
blueocean-git-pipeline:1.24.8
antisamy-markup-formatter:2.1
github-api:1.123
email-ext:2.83
pipeline-milestone-step:1.3.2
build-timeout:1.20
plugin-util-api:2.4.0
popper-api:1.16.1-2
blueocean-autofavorite:1.2.4
sse-gateway:1.24
workflow-cps-global-lib:2.21
checks-api:1.7.2
pipeline-stage-step:2.5
ace-editor:1.1
workflow-multibranch:2.26
durable-task:1.39
pipeline-github-lib:1.0
junit:1.52
gradle:1.37.1
workflow-aggregator:2.6
blueocean-display-url:2.4.1
timestamper:1.13
blueocean-rest-impl:1.24.8
git:4.8.2
blueocean-commons:1.24.8
blueocean-rest:1.24.8
authentication-tokens:1.4
blueocean-pipeline-api-impl:1.24.8
lockable-resources:2.11
cloudbees-folder:6.16
blueocean-personalization:1.24.8
workflow-step-api:2.24
structs:1.23
workflow-durable-task-step:2.39
jsch:0.1.55.2
plain-credentials:1.7
git-client:3.9.0
script-security:1.78
bootstrap5-api:5.1.0-1
ws-cleanup:0.39
ant:1.11
blueocean-jwt:1.24.8
pipeline-input-step:2.12
ssh-slaves:1.32.0
获取服务器已安装插件列表的方法:
$ 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
/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。