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.hqwc.cn/news/572143.html

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

相关文章

TCP重传机制详解——02SACK

文章目录 TCP重传机制详解——02 SACKSACK是什么?为什么要有SACK?实际场景抓包具体显示信息流程 实战抓包讲解SACK关闭场景下,三次重复ACK后会快速重传SACK打开但是不携带SACK块信息场景下,三次重复ACK也不会快速重传SACK打开并且…

Docker搭建LNMP环境实战(04):安装VMwareTools共享文件夹

1、加载VMware Tools安装盘 在VMware客户端,点击主菜单: 图1 启动VMware Tools安装 再点击下面的菜单: 图2 打开设置界面 出现下面的界面,虚拟DVD加载的是linux.iso 图3 查看VMware Tools的DVD虚拟安装映像文件 将DVD加载到CentO…

C++ 控制语句(一)

一 顺序结构 程序的基本结构有三种: 顺序结构、分支结构、循环结构 大量的实际问题需要通过各种控制流程来解决。 1.1 顺序结构 1.2 简单语句和复合语句 二 循环 2.1 for循环 语句流程图 注意:使用for语句的灵活性 三 while语句 四 do while语句

SpringCloud详解(持续更新)

springcloud定义 springcloud搭建 Eureka(注册发现) Eureka主页信息 Eureka服务注册中心(Eureka Server) 搭建 失效剔除(配置) Eureka服务提供方(Eureka Client) 搭建 Eureka服务消…

基于DWT(离散小波变换)的图像水印算法,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…

Avalonia笔记2 -数据集合类控件

学习笔记&#xff1a; 1. DataGrid 笔记1中已经记录&#xff1b; 2. ItemsControl 属性&#xff1a; ItemsSource&#xff1a;数据源 ItemsControl.ItemTemplate&#xff1a;单项数据模板&#xff0c;内部使用<DataTemplate> 示例&#xff1a; <ItemsContr…

Linux相关命令(1)

1、找出文件夹下包含 “aaa” 同时不包含 “bbb”的文件&#xff0c;然后把他们重新生成一下。要求只能用一行命令。 find ./ -type f -name "*aaa*" ! -name "*bbb*" -exec touch {} \;文件系统操作命令 df&#xff1a;列出文件系统的整体磁盘使用情况 …

(一)Spring Cloud 的认识

1.认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构。 1.1.单体架构 单体架构&#xff1a;将业务的所有功能集中在一个项目中开发&#xff0c;打成一个包部署。 单体架构的优缺点如下&am…

C语言例4-15:从键盘输入一个整数,求其绝对值并输出。

代码如下&#xff1a; //从键盘输入一个整数&#xff0c;求其绝对值并输出。 #include<stdio.h> int main(void) {int n;printf("输出一个整数&#xff1a; \n");scanf("%d",&n); //从键盘输入一个整数保存至变量nif(n<0) //…

全国植被类型分布数据

引言 全国植被类型分布数据利用 Landsat 卫星数据&#xff08;Landsat TM&#xff0c;ETM和 OLI&#xff09;完成了长时序的地表覆盖变化检测&#xff0c;并结合变化 检测结果实现了逐区域和逐期的地表覆盖动态更新&#xff0c;30米精细植被类型分布数据&#xff0c;共包含 2…

AI Agent(LLM Agent)入门解读

1. 什么是AI Agent&#xff1f; AI Agent可以理解为一个智能体&#xff0c;包括感知模块、规划决策模块和行动模块&#xff0c;类似于人类的五官、大脑和肢体。它能帮助人类处理复杂的任务&#xff0c;并能根据环境反馈进行学习和调整。 五官可以理解为感知模块&#xff0c;大…

蓝桥-肖恩的排序

目录 题目链接&#xff1a; 思路&#xff1a; 代码&#xff1a; 总结常见的排序写法&#xff1a; 题目链接&#xff1a; 0肖恩的排序 - 蓝桥云课 (lanqiao.cn) 思路&#xff1a; 参考罗老师的思路&#xff1a;&#xff1c;蓝桥杯软件赛&#xff1e;零基础备赛20周--第8周第…