2024最新 Jenkins + Docker实战教程(一) - Jenkins介绍及安装

在这里插入图片描述

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志
🎐 个人CSND主页——Micro麦可乐的博客
🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战
🌺《RabbitMQ》本专栏主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战
🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解
💕《Jenkins实战》专栏主要介绍Jenkins+Docker+Git+Maven的实战教程,让你快速掌握项目CI/CD,是2024年最新的实战教程
如果文章能够给大家带来一定的帮助!欢迎关注、评论互动~

Jenkins + Docker + Gitee 实战教程(一) - Jenkins介绍及安装

  • 前言
  • 什么是Jenkins
  • Jenkins的核心功能
  • Jenkins安装
    • Docker
    • WAR文件
    • MacOS
    • Windows
    • Linux - Ubuntu
  • 测试访问
  • 如何干净的重装
  • 结语

前言

在现代软件开发中,持续集成和持续部署(CI/CD)已经成为不可或缺的一部分。Jenkins作为一个开源的自动化服务器,是CI/CD流程中最常用的工具之一。本教程序系列将深入探讨Jenkins的核心功能、安装与配置、常用插件以及实际使用中的一些最佳实践。

在这里插入图片描述

什么是Jenkins

Jenkins是一款开源 CI/CD 软件,用于自动化各种任务,包括构建、测试和部署软件。

CI :Continuous Integration 持续集成
CD:Continuous Delivery 持续交付

Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序,Jenkins中文官方地址:https://www.jenkins.io/zh/

Jenkins的核心功能

  • 持续集成与持续部署(CI/CD)
    Jenkins能够自动化地执行代码的构建、测试和部署,确保代码库的每一次更改都能够顺利地集成和发布。

  • 丰富的插件支持
    Jenkins拥有超过1500个插件,支持各种版本控制系统(如Git、Subversion)、构建工具(如Maven、Gradle)、测试框架(如JUnit、TestNG)等。

  • 分布式构建
    Jenkins支持主从架构,可以将构建任务分发到多个从节点上执行,从而提高构建效率。

  • 灵活的配置
    Jenkins支持通过Pipeline(流水线)脚本来定义复杂的构建流程。

Jenkins安装

本系列教程博主使用的是Docker来安装运行Jenkins

Docker

使用Docker来安装运行Jenkins,首先需要我们安装好Docker。如果有小伙伴对Docker不熟悉的可以访问博主的 【Docker专栏】进行学习,这里就不赘述了。

运行安装命令

docker run \
  -u root \
  -d \
  -p 8080:8080 \
  -p 50000:50000 \
  -v /home/jenkins-data:/var/jenkins_home \
  --name jenkins-docker \
  jenkins/jenkins:lts-jdk17

指令说明

-d: 在后台运行容器
-p 8080:8080 :容器的端口8080到主机上的端口8080
-p 50000:50000 :公开主机上的 Docker 守护进程端口
-v jenkins-data:/var/jenkins_home :将容器的 /var/jenkins_home 目录映射到宿主机中的 /home/jenkins-data目录

WAR文件

Jenkins是基于Java开发的一种持续集成工具,WAR文件文件版本可以安装在任何支持Java的操作系统或平台上,需要先安装好JDK

  • 首先下载最新的war文件 【下载地址】
  • 运行命令 java -jar jenkins.war
  • 访问浏览http://localhost:8080

要通过端口9090访问Jenkins,请使用以下命令运行Jenkins
java -jar jenkins.war --httpPort=9090

MacOS

Jenkins针对苹果系统的用户,提供了安装包和HomeBrew两种安装方式;

安装包形式安装:

  • 下载安装包 【下载地址】
  • 打开包装并按照说明操作

HomeBrew安装:

# 安装最新版本
brew install jenkins

#安装 LTS 版本
brew install jenkins-lts

Windows

Jenkins针对Windows用户也提供了相应安装包:

  • 下载安装包 【下载地址】
  • 打开包装并按照说明操作

Linux - Ubuntu

在基于Debian的发行版(如Ubuntu)上,您可通过apt安装Jenkins

wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

安装这个软件包将会:

  • 将Jenkins设置为启动时启动的守护进程。查看/etc/init.d/jenkins获取更多细节
  • 创建一个jenkins用户来运行此服务
  • 直接将控制台日志输出到文件/var/log/jenkins/jenkins.log。如果您正在解决Jenkins问题,请检查此文件
  • /etc/default/jenkins`为启动填充配置参数,例如JENKINS_HOME
  • 将Jenkins设置为在端口8080上进行监听。使用浏览器访问此端口以开始配置

如需要修改Jenkins配置文件,如:修改端口号等。编辑 /etc/default/jenkins 对应配置即可

测试访问

在浏览器中输入http://<your_server_ip>:8080, 见下图
在这里插入图片描述
根据提示可以查找 /var/jenkins_home/secrets/initialAdminPassword 获取管理员密码

当然我们还可以执行docker logs 指令查看

docker log jenkins-docker

在这里插入图片描述
将密码复制填入并登陆
在这里插入图片描述
可以根据需要选择需要安装的插件,也可以安装推荐插件,待安装完成后再进行其他插件的安装,博主这里直接安装推荐插件。

插件安装完成后,会提示创建管理员用户,根据需要自行设置即可
在这里插入图片描述
配置Jenkins Url
在这里插入图片描述
完成后进入看到下图,即代表jenkins安装成功
在这里插入图片描述

tips:
由于博主安装了Dark-Themes 插件,可以在个人中心 - 设置 中更换皮肤显示

如何干净的重装

有小伙伴可能在安装过程中,出现异常或需要更新版本需要重装jenkins,这里教大家如何干净的重装。
注意我们之前运行的时候进行了数据卷的挂载 -v /home/jenkins-data:/var/jenkins_home,在使用docker命令删除容器的同时,注意一并删除挂载卷。

#停止容器
docker stop jenkins-docker

#删除容器
docker rm jenkins-docker

##删除挂载卷
rm -rf /home/jenkins-data

结语

Jenkins作为一个功能强大的CI/CD工具,能够极大地提高软件开发的效率和质量。通过本文的介绍,希望大家能够更好地理解Jenkins以及Jenkins的安装,下一章节我们将介绍Jenkins的相关配置

下一章节:2024最新 Jenkins + Docker 实战教程(二) - Jenkins相关配置


在这里插入图片描述

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

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

相关文章

DiffMap:首个利用LDM来增强高精地图构建的网络

论文标题&#xff1a; DiffMap: Enhancing Map Segmentation with Map Prior Using Diffusion Model 论文作者&#xff1a; Peijin Jia, Tuopu Wen, Ziang Luo, Mengmeng Yang, Kun Jiang, Zhiquan Lei, Xuewei Tang, Ziyuan Liu, Le Cui, Kehua Sheng, Bo Zhang, Diange Ya…

大数据工具之HIVE-参数调优,调度乱码(二)

一、调度乱码 在利用HUE工具,搭建WORKFLOW流程的过程中,如果直接执行hivesql数据正常,不会出现乱码现象,如果利用WORKFLOW搭建的流程,进行数据的拉取,会出现数据中文乱码现象,这些乱码主要是由于select 中的硬编码中文导致出现的现象 具体现象如下: select case when …

auto关键字(C++11)

auto关键字&#xff08;C11&#xff09; 文章目录 auto关键字&#xff08;C11&#xff09;前言一、auto使用规则二、auto不适用的场景三、auto推荐适用的场景总结 前言 在C11中&#xff0c;auto关键字能够自动推导出变量的实际类型&#xff0c;可以帮助我们写出更加简洁、现代…

java8新特性——函数式编程详解

目录 一 概述1.1 背景1.2 函数式编程的意义1.3 函数式编程的发展 Lambda表达式1.1 介绍1.2 使用Lambda的好处1.3 Lambda方法1.3.1 Lambda表达式结构1.3.2 Lambda表达式的特征 1.4 Lambda的使用1.4.1 定义函数式接口1.4.2 Lambda表达式实现函数式接口1.4.3 简化Lambda表达式1.4.…

k8s devops实战教程+生产实践+可就业

k8s devops实战教程 简介教程涉及到内容教程获取学习教程后的收货助学群 简介 越来越多的企业应用云原生化&#xff0c;催生很多应用的部署方式也发生了很多变化。 从物理机部署应用过度到虚机部署应用再到应用容器化&#xff0c;从单应用再到服务拆分为微服务&#xff0c;靠人…

【手把手搓组件库】从零开始实现Element Plus--组件开发

从零开始实现Element Plus--组件开发 nvmnvm的作用&#xff1a;nvm的使用方法 需求分析提示词Kimi 生成产品需求文档kimi 生成测试用例 初始化 vitest完善 Button 组件1、定义 types.ts2、Button.vue 引入 types.ts3、添加Button样式点击事件 添加节流添加 Icon 集成 StoryBook…

红黑树封装map和set

红黑树源代码 我们将由下列的KV模型红黑树来模拟封装STL库中的map和set 注意&#xff1a;为了实现封装map和set&#xff0c;我们需要对下列源码进行优化。 #pragma once #include<iostream> using namespace std; //枚举类型的颜色分类 enum Colour {RED,BLACK };//定…

Collection

Collection是单列集合的祖宗接口&#xff0c;它的功能是全部单列集合都可以继承使用。 1.添加元素 public class test {public static void main(String [] args) {Collection<String> colnew ArrayList<>();col.add("aaa");col.add("bbb");…

多签名钱包

相交于硬件钱包的物理上丢失和密钥遗忘&#xff0c;多签名钱包在保证安全不易被破解的基础上&#xff0c;解决了部分密钥丢失的问题。 相比于BTC之前讲到的脚本钱包&#xff08;BTC—脚本&#xff09;&#xff0c;ETH的多签钱包设计可以通过智能合约来实现 设计思路 工作原理…

辐射度技术在AI去衣中的魅力与科学

引言&#xff1a; 在当今的数字化时代&#xff0c;人工智能正逐渐渗透到我们生活的方方面面。其中&#xff0c;AI去衣技术作为一项颇具争议但又不失其科技创新的应用&#xff0c;正引起越来越多的关注和讨论。而在实现高质量图像渲染的过程中&#xff0c;辐射度技术凭借其卓越的…

移动端开发 笔记01

目录 01 移动端的概述 02 移动端的视口标签 03 开发中的二倍图 04 流式布局 05 弹性盒子布局 01 移动端的概述 移动端包括:手机 平板 便携式设备 目前主流的移动端开发: 安卓设备 IOS设备 只要移动端支持浏览器 那么就可以使用浏览器开发移动端项目 开发移动端 使用…

GNSS中的多路径效应原理及计算方法

1 多路径效应原理 图1 多路径效应原理图 2 计算方法 如需原文&#xff0c;可加多源融合定位与智能控制讨论群获取,QQ群号&#xff1a;51885949

6、phpjm混淆解密和php反序列化

题目&#xff1a;青少年雏形系统 1、打开链接也是一个登入面板 2、尝试了sqlmap没头绪 3、尝试御剑&#xff0c;发现一个www.zip 4、下载打开&#xff0c;有一个php文件打开有一段phpjm混淆加密 5、使用手工解混淆 具体解法链接&#xff1a;奇安信攻防社区-phpjm混淆解密浅谈…

页面<html>上多了一个滚动条,定位发现是<body>里面多了一个id为trans-tooltip的div

现象分析&#xff1a; 页面根标签html多了一个滚动条&#xff0c;发现body里面多了一个id为trans-tooltip的div&#xff0c;虽然width为0&#xff0c;height为0&#xff0c;但是其子元素还是有高度&#xff0c;占据了空间&#xff0c;最终导致了滚动条&#xff1b; 根本原因&…

SpringBoot注解--09--idea创建spring boot项目,java版本只能选择17和21

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 idea创建spring boot项目1.问题描述2.原因3.解决方法方案一&#xff1a;升级JDK版本至17或更高方案二&#xff1a;替换Spring初始化的源https://start.aliyun.com i…

可以在搜索结果中屏蔽指定网站的插件

可以在搜索结果中屏蔽指定网站的插件 | LogDict背景 在搜索引擎中搜索问题, 往往充斥各种无效内容 比如搜个技术类的问题, 前几页CSDN, 百度百家号, 百度经验, 百度知道, 腾讯云各类云爬的水文 CSDN基本都是复制粘贴的, 甚至格式都乱码了, 虽然我以前也干过 要复制粘贴无所谓, …

最小二乘法-超详细推导(转换为矩阵乘法推导,矩阵求导推导)

最小二乘法就是让均方误差最小。 下面是损失函数转换为矩阵方式的详解 如何让其最小&#xff0c;在导数为0的地方取极小值。 问&#xff1a;导数为0的地方可能去极大值&#xff0c;也可能是极小值&#xff0c;凭什么说导数为0就是极小值&#xff1f; 答&#xff1a;因为使用…

Linux 生产跑批脚本解读

1.查看定时任务 2.脚本-目录结构 1&#xff09;config.ini 2&#xff09;run.sh 3.命令解读 1&#xff09;ls -1 路径文件夹 含义&#xff1a;ls -1 /home/oracle/shell/config/ 将文件夹config内的文件全部列出 [oracleneptune config]$ ls -1 /home/oracle/shel…

【ROS机器人学习】--------1ROS工作空间和功能包创建

虚拟机工具和镜像链接: https://pan.baidu.com/s/1HDmpbMESiUA2nj3qFVyFcw?pwd8686 提取码: 8686 ROS工作空间是一个用于组织和管理ROS&#xff08;机器人操作系统&#xff09;包的目录结构&#xff0c;它通常包含多个子目录&#xff0c;用于存放源码、构建文件和安装文件。工…