Jenkins--在Linux上使用Docker安装

一、Jenkins 简介

Jenkins是一个流行的开源自动化服务器,用于持续集成和持续交付(CI/CD)。Jenkins的核心功能主要包括以下几点:

  1. 持续集成:Jenkins可以监控版本控制系统(如Git、SVN)中的代码变更,并自动执行构建和测试,确保每次提交都被验证,从而尽早发现潜在的集成错误。
  2. 持续部署:当代码通过测试后,Jenkins可以自动将其部署到不同的环境中,包括测试、预生产或生产环境。
  3. 任务调度:Jenkins能够定时执行任务,比如夜间构建或定期发布。
  4. 工作流管理:Jenkins支持Pipeline,它可以定义一系列的任务(构建、测试、部署等),形成一个完整的流程。
  5. 插件扩展:Jenkins拥有强大的插件生态系统,可以通过安装插件来扩展其功能,支持与各种版本控制系统、构建工具、测试框架等的无缝集成。
  6. 分布式构建:Jenkins支持分布式构建,可以将构建任务分发到多个构建代理上并行执行,这对于大型项目和复杂系统的构建和部署过程至关重要,能够显著提高任务执行的速度,进而提高整体开发效率。

二、安装前准备

  • 需要先在系统中安装好JDK以及Maven。
    在这里插入图片描述
  • 由于Jenkins拉取代码时,需要对maven仓库有读写权限,所以的先给maven仓进行授权。
chomd 777 /usr/local/src/maven/repo/

三、开始安装

3.1 拉取Jenkins镜像

命令:docker pull jenkins/jenkins:lts

3.2 创建挂载目录

为了方便后期Jenkins中配置文件的修改,以及防止Jenkins中重要文件因为容器损毁或删除导致文件丢失,需要在宿主机上创建一个jenkins_home目录挂载到容器中的/var/jenkins_home目录上。通过挂载的方式可以保证容器的数据在容器停止或删除后依然保留在宿主机上。

## 宿主机上创建挂载目录
mkdir -p /usr/local/src/jenkins_home## 授权挂载目录的读写权限
chmod 777 /usr/local/src/jenkins_home
3.3 启动容器
docker run \
-d \
--name jenkins \
--restart=always \
-p 9100:8080 \
-p 50000:50000 \
-v /usr/local/src/java/jdk1.8/jdk1.8.0_391/:/usr/local/src/java/jdk1.8/jdk1.8.0_391/ \
-v /usr/local/src/maven/apache-maven-3.9.6/:/usr/local/src/maven/apache-maven-3.9.6/ \
-v /usr/local/src/jenkins_home/:/var/jenkins_home \
-v /etc/localtime:/etc/localtime:ro \
-u 0 \
jenkins/jenkins:lts
  • -d:在后台运行容器。
  • --name:设置容器的名称。
  • –restart:设置容器启动之后自动重启,默认no,always表示启动容器后重启。
  • -p 9100:8080:容器的8080端口映射宿主机9100端口(程序访问端口)。
  • -p 5000:50000:容器的50000端口映射宿主机50000端口(代理端口)。
  • -v /usr/local/src/java/jdk1.8/jdk1.8.0_391/:/usr/local/src/java/jdk1.8/jdk1.8.0_391/:将宿主机的JDK目录挂载到容器中。
  • -v /usr/local/src/maven/apache-maven-3.9.6/:/usr/local/src/maven/apache-maven-3.9.6/:将宿主机的Maven目录挂载到容器中。
  • -v /usr/local/src/jenkins_home/:/var/jenkins_home:将宿主机的jenkin工作空间目录挂载到容器中。
  • -v /etc/localtime:/etc/localtime:ro:设置容器时间与宿主机时间一致。
  • -u 0:使用root账号覆盖容器中内置的账号,0表示root账号的id。
3.4 登录Jenkins页面

(1)首次通过在浏览器中输入http://宿主机ip:9100/进入Jenkins页面。首次进入需要从远程服务器下载大量的插件和更新信息,这个过程可能会受到网络速度和稳定性的影响,尤其是Jenkins默认使用国外的镜像源,下载往往很慢。这时可以通过修改宿主机的挂载目录jenkins_home中的hudson.model.UpdateCenter.xml文件,将其默认的url更换成国内的镜像地址。
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
在这里插入图片描述
插件信息更新完成之后会跳出提示输入管理员密码的页面。
在这里插入图片描述
(2)通过到宿主机的挂载目录下的secrets中的initialAdminPassword文件中获取密码。
cat /usr/local/src/jenkins_home/secrets/initialAdminPassword

(3)将获取到的密码输入到页面,点击继续进入到后续的设置。
在这里插入图片描述
(4)插件安装
新手推荐选择安装推荐的插件,也可以选择插件来安装,看个人喜好。可能有些插件会安装失败,这里不影响Jenkins安装先不管,继续往后面操作,后续安装完成后再到Jenkins使用页面进行插件的安装。
在这里插入图片描述
(5)创建第一个管理员用户
输入管理员用的账号密码以及邮箱信息,然后点击右下角的使用admin账户继续。
在这里插入图片描述
(6)实例配置
实例配置页面默认会带出Jenkins URL地址,也不需要改,直接点击保存并完成。
在这里插入图片描述
(7)开始使用
到这步就已经安装完成了,点击开始使用Jenkins。
在这里插入图片描述

四、插件管理

进入到Jenkins使用页面后,点击左边菜单栏的Manage Jenkins,会在右边提示刚刚安装是未成功的插件错误信息,也可以在这里搜索想要安装的插件。在这里插入图片描述### 五、解决插件安装失败问题
插件安装失败一般可通过升级Jenkins到最新版本来解决问题,下面来指定升级对应的版本。

(1)首先根据我们使用的镜像源,也就是刚开始安装时我们替换成的清华镜像源的地址https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/中找到对应的版本中的update-center.json文件。
在这里插入图片描述
(2)然后到Jenkins安装服务器上,全局查找default.json这个文件。
find / -name default.json
在这里插入图片描述
(3)进入这个文件所在目录,先备份该文件,以便后面回滚。
cp default.json default.json.bak
(4)在同目录下载刚刚在清华镜像源地址中找到的update-center.json文件,并修改文件名为default.json。

wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-2.444/update-center.jsonmv update-center.json default.json

在这里插入图片描述
(5)重启Jenkins,再次登录进去就线上插件都安装成功了。
在这里插入图片描述

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

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

相关文章

RAG进阶笔记:RAG进阶

1 查询/索引部分 1.1 层次索引 创建两个索引——一个由摘要组成,另一个由文档块组成分两步进行搜索:首先通过摘要过滤出相关文档,接着只在这个相关群体内进行搜索 1.2 假设性问题 让LLM为每个块生成一个假设性问题,并将这些问…

U盘未格式化,数据恢复攻略大揭秘

U盘遭遇未格式化困境,数据安全岌岌可危 在日常的工作和生活中,U盘以其便携、容量大的特性成为了我们不可或缺的存储工具。然而,有时我们会遇到这样一个棘手的问题:当我们将U盘插入电脑时,却收到了“未格式化”的提示。…

畅捷通T+ Ufida.T.DI.UIP.RRA.RRATableController 远程命令执行漏洞

一、漏洞信息 漏洞名称:畅捷通T Ufida.T.DI.UIP.RRA.RRATableController 远程命令执行漏洞 漏洞类别:远程命令执行漏洞 风险等级:高危 二、漏洞描述 畅捷通TPlus适用于异地多组织、多机构对企业财务汇总的管理需求;全面支持企…

为什么 Hashtable 不允许插入 null 键 和 null 值?

1、典型回答 浅层次的来回答这个问题的答案是,JDK 源码不支持 Hashtable 插入 value 值为 null,如以下JDK 源码所示: 也就是JDK 源码规定了,如果你给 Hashtable 插入 value 值为 null 就会抛出空指针异常 并目看上面的JDK 源码可…

js算法记录

> 更多请前往 https://www.passerma.com/article/86 滑动窗口 1 给定一个矩阵,包含N*M个整数,和一个包含K个整数的数组。现在要求在这个矩阵中找一个宽度最小的子矩阵,要求子矩阵包含数组中所有的整数 function minSubmatrixWidth(mat…

PCL拟合并绘制平面(二)

使用RANSAC拟合点云平面 1、C实现2、效果图 普通的点云平面拟合方式在一般情况下可以得到较好的平面拟合效果,但是容易出现平面拟合错误或是拟合的平面不是最优的情况。此时就需要根据自己的实际使用情况,调整平面拟合的迭代次数以及收敛条件。 使用RAN…

vue脚手架创建项目:账号登录(利用element-ui快速开发)(取消eslint强制格式)(修改端口号)

新手看不懂,老手不用看系列 文章目录 一、准备工作1.1 取消强制格式检查1.2 导入依赖,注册依赖 二、去element-ui官网找样式写Login组件2.1 引用局部组件2.2 运行项目 三、看一下发现没问题,开始修改前端的代码四、修改端口号4.1 修改后端端口…

一款比 K8S 更好用的编排工具——Nomod 单机部署

上下文 最近公司需要调研类似 EMCHub 这样支持算力共享的服务。第一直觉是使用 K8S 或 K3S,作为 CNCF 孵化的顶级项目,同时也是当前云原生生态使用最广的编排系统。但是在学习 EMC Hub 源码过程中,偶然发现它是基于 Nomad 做的集群管理。 相…

Python学习笔记------文件操作

编码 编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑。 编码有许多中,我们最常用的是UTF-8编码 计算机只认识0和1,所以需要将内容翻译成0和1才能保存在计算机中。同时也需要编码,将计算机保存的0和1&#xff0c…

maya导入导出bvh 自动 脚本

目录 maya打开脚本编辑器 运行打开bvh脚本 maya导出bvh脚本 maya打开脚本编辑器 打开Maya软件,点击右下角 “脚本编辑器” 运行打开bvh脚本<

Spring:面试八股

文章目录 参考Spring模块CoreContainerAOP 参考 JavaGuide Spring模块 CoreContainer Spring框架的核心模块&#xff0c;主要提供IoC依赖注入功能的支持。内含四个子模块&#xff1a; Core&#xff1a;基本的核心工具类。Beans&#xff1a;提供对bean的创建、配置、管理功能…

国内ip地址推荐,畅享网络新体验!

在数字化时代&#xff0c;IP地址不仅是网络连接的基石&#xff0c;也是互联网产业发展的重要标志。国内作为全球互联网市场的重要参与者&#xff0c;拥有众多IP地址资源。虎观代理小二旨在探索并推荐一些国内IP地址&#xff0c;分析它们的价值所在&#xff0c;并探讨如何更好地…

华为数通 HCIP-Datacom H12-831 题库补充(3/27)

2024年 HCIP-Datacom&#xff08;H12-831&#xff09;最新题库&#xff0c;完整题库请扫描上方二维码&#xff0c;持续更新。 如图所示&#xff0c;关于R4路由器通过IS-IS计算出来的IPv6路由&#xff0c;哪一选项的描述是错误的&#xff1f; A&#xff1a;R4通过IS—IS只学习到…

stm32f103c8t6学习笔记(学习B站up江科大自化协)-DMA

DMA简介 DMA主要用于协助CPU完成数据转运的工作 DMA&#xff0c;英文全称Direct Memory Access&#xff0c;DMA这个外设是可以直接访问STM32内部存储器的&#xff0c;包括运行内存SRAM&#xff0c;程序存储器flash和寄存器等等&#xff0c;DMA都有权限访问&#xff0c;所以DMA能…

PHP页面如何实现设置独立访问密码

PHP网页如果需要查看信息必须输入密码&#xff0c;验证后才可显示出内容的代码如何实现&#xff1f; 对某些php页面设置单独的访问密码,如果密码不正确则无法查看内容,相当于对页面进行了一个加密。 如何实现这个效果&#xff0c;详细教程可以参考&#xff1a;PHP页面如何实现…

基于react native的自定义轮播图

基于react native的自定义轮播图 效果示例图示例代码 效果示例图 示例代码 import React, {useEffect, useRef, useState} from react; import {Animated,PanResponder,StyleSheet,Text,View,Dimensions, } from react-native; import {pxToPd} from ../../common/js/device;c…

【Linux】进程状态(R运行状态、S睡眠状态、D磁盘休眠状态、T停止状态、X死亡状态)

目录 01.运行状态 02.睡眠状态 03.磁盘睡眠状态 04.停止状态 05.死亡状态 进程的状态会随着操作系统的调度和外部事件的发生而不断地发生转换。例如&#xff0c;一个新创建的进程经过初始化后会进入就绪态&#xff0c;等待被调度执行&#xff1b;当调度器分配处理器资源给…

Windows直接运行python程序

Windows直接运行python程序 一、新建bat脚本二、新建vbs脚本 一、新建bat脚本 新建bat批处理脚本&#xff0c;写入以下内容 echo off call conda activate pytorch python app.pyecho off&#xff1a;在此语句后所有运行的命令都不显示命令行本身&#xff0c;但是本身的指令是…

Android: Gradle 命令

一、查看整个项目依赖传递关系 x.x.x (*) 该依赖已经有了&#xff0c;将不再重复依赖。x.x.x -> x.x.x 该依赖的版本被箭头所指的版本代替。x.x.x -> x.x.x(*) 该依赖的版本被箭头所指的版本代替&#xff0c;并且该依赖已经有了&#xff0c;不再重复依赖。 1. gradlew ap…

申请即管控、差补自动算......企业差旅,想怎么省就怎么省

3月开始,企业商旅行为逐步升温。但管控难度也随之而来: ● 同时段、同起终地,预订机、火。企业支付后,总忘记取消未使用行程; ● 同天预订不同城市酒店,非入住酒店经常无法免费取消; ● 短途差旅,依然按习惯预订机票...... 为了提高效率,“出一趟差,办多项事”成了很多企业…