Jenkins--在Linux上使用Docker安装

news2024/11/16 0:42:06

一、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.json

mv update-center.json default.json

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django开发复盘

一、URL 对于一个不会写正则表达式的蒟蒻来说,在urls.py中就只能傻傻的写死名字,但是即便这样,还会有很多相对路径和绝对路径的问题(相对ip端口的路径),因为我们网页中涉及到页面跳转,涉及到发送…

【LaTeX】7实现章节跳转

使用 LaTeX 实现章节跳转 写在最前面1. 引入 hyperref 包2. 标记章节3. 引用章节示例代码注意 小技巧总结 🌈你好呀!我是 是Yu欸 🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~ 🚀 欢迎一起踏上探险之旅,…

江协STM32:点亮第一个LED灯和流水灯

很多单片机都是高电平弱驱动,低电平强驱动,所以这里是低电平有效 点亮一个LED灯 操作STM32的GPIO需要三个操作: 第一个使用RCC开启GPIO的时钟 第二步使用GPIO_Init函数初始化GPIO 第三步使用输出或输入函数控制GPIO 1.使用RCC开启GPIO的时…

使用patchelf解决vscode远程连接不支持低版本glibc的问题

使用patchelf解决vscode远程连接不支持低版本glibc的问题 目录 使用patchelf解决vscode远程连接不支持低版本glibc的问题1. 动态链接库下载2. 用 patchelf 修改 vscode-server 依赖的 glibc 版本 VScode 1.86 版本的 remote 要求 glibc 2.28 及以上,于是在各种旧版本…

python--函数的参数问题

1.函数的参数: 默认值参数:通过定义函数时,将可能调用时不怎么变化的参数,给定默认值,在调用时方便调用 注意:位置参数不能写在默认值参数后边 可变参数(不定长参数):在开…

阿里云云服务器资源规格推荐指南

资源规格推荐可以根据您的特定业务场景,为您推荐最合适的计算资源规格以及满足您算力需求的资源规模。本文介绍如何根据物理机规格推荐ECS资源和根据总算力推荐ECS资源。 根据物理机规格推荐ECS资源 IDC上云可以帮助您在将线下IDC服务器搬迁上云前,根据…

《深入Linux内核架构》第3章 内存管理(4)

目录 3.4 初始化内存管理 3.4.1 建立数据结构 3.4.2 特定于体系架构的设置 内核在内存中的布局 初始化步骤 分页机制的初始化 3.4.3 启动期间的内存管理 数据结构 初始化 与内核的接口 停用bootmem分配器 释放初始化数据 3.4 初始化内存管理 包括: 显式…

【数字图像处理matlab系列】数组索引

【数字图像处理matlab系列】数组索引 【先赞后看养成习惯】【求点赞+关注+收藏】 MATLAB 支持大量功能强大的索引方案,这些索引方案不仅简化了数组操作,而且提高了程序的运行效率。 1. 向量索引 维数为1xN的数组称为行向量。行向量中元素的存取是使用一维索引进行的。因此…

STM32收发HEX数据包

在实际应用中,STM32的串口通信都是以数据包格式进行收发,这个数据包一般都包含包头和包尾,表示一个数据包。源代码在文末给出 数据包格式: 固定长度,含包头包尾 可变包长,含包头包尾 问题1:当…

Anaconda虚拟环境的介绍与使用

Anaconda虚拟环境介绍 虚拟环境是一种工具,可以让您在同一台计算机上创建多个独立的Python环境,每个环境可以拥有自己的Python解释器版本、包和依赖项。使用虚拟环境有以下几个优点: 隔离项目环境: 在开发中,不同的项…

使用LangChain LCEL生成RAG应用、使用LangChain TruLens对抗RAG幻觉

# 导入LangChain的库 from langchain import *# 加载数据源 loader WebBaseLoader() doc loader.load("https://xxx.html")# 分割文档对象 splitter RecursiveCharacterTextSplitter(max_length512) docs splitter.split(doc)# 转换文档对象为嵌入,并…

3d放上模型为什么渲染不出来---模大狮模型网

如果在3D软件中放置模型后无法正确渲染出来,可能有几个常见的原因导致这种情况发生: 材质设置问题:确保所放置的模型具有正确的材质和纹理,并且材质设置正确。如果材质设置有误,可能会导致模型无法正确显示。 光照设置…

BaseDao封装JavaWeb的增删改查

目录 什么是BaseDao? 为什么需要BaseDao? BaseDao的实现逻辑 什么是BaseDao? Basedao 是一种基于数据访问对象(Data Access Object)模式的设计方法。它是一个用于处理数据库操作的基础类,负责封装数据库…

大模型论文阅读:ADAPTIVE BUDGET ALLOCATION FOR PARAMETEREFFICIENT FINE-TUNING

大模型论文阅读:ADAPTIVE BUDGET ALLOCATION FOR PARAMETEREFFICIENT FINE-TUNING 论文链接:https://arxiv.org/pdf/2303.10512v1.pdf 当存在大量下游任务时,微调所有预训练模型的参数变得不可行。因此,为了以参数高效的方式学习预训练权重的增量更新,提出了许多微调方法,…

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

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

AI+云平台|全闪云底座迎战

AI融万物之势席卷而来 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 行业特点 AI场景中80%以上是小文件,以非结构化数据为…

maya导入导出bvh 自动 脚本

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

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

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

如何清理释放群晖客户端缓存?

任正菲说&#xff1a;企业最大的浪费&#xff0c;是经验的浪费&#xff01; 而一个一个的经验&#xff0c;又都来自企业的每一个工作者。 因此当我们在工作过程中遇到一些问题时&#xff0c;我们就应该下意识的把解决问题的经验沉淀下来&#xff0c;从而可以与大家进行分享。…

耳目一新的滑块版登录注册界面~

又到了毕业季&#xff0c;大家做毕设的时候总会参考已有的案例&#xff0c;不过大多产品的样式非常单一雷同。本帖博主给大家分享一个比较别树一帜的登录界面&#xff0c;如下&#xff1a; 如果没有账号&#xff0c;点击“去注册”&#xff0c;则会产生如下的效果&#xff1a; …