当前位置: 首页 > news >正文

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相关配置


在这里插入图片描述

相关文章:

  • Android 多语言
  • 揭秘C++ String容器:字符串操作的艺术
  • php正则中的i,m,s,x,e分别表示什么
  • 大数据信用报告查询有哪些作用?哪个平台更好?
  • Go微服务: Nacos的搭建和基础API的使用
  • 云计算-使用Java访问S3 (Accessing S3 using Java)
  • 爬虫案例-亚马逊反爬流程分析梳理(验证码突破)(x-amz-captcha)
  • C# 集合(三) —— Stack/BitArray类
  • 【C语言回顾】编译和链接
  • 云部署最简单python web
  • 【SpringBoot】SpringBoot中防止接口重复提交(单机环境和分布式环境)
  • sqlites数据库读取,仅适用于数据少的数据库查询【改进版】
  • RedisTemplateAPI:List
  • 经常碰到的20个等待事件
  • Android firebase消息推送集成 FCM消息处理
  • C++类的相互关联
  • Django 博客开发教程 8 - 博客文章详情页
  • JavaScript DOM 10 - 滚动
  • JDK 6和JDK 7中的substring()方法
  • JWT究竟是什么呢?
  • Python_网络编程
  • ReactNativeweexDeviceOne对比
  • SpiderData 2019年2月13日 DApp数据排行榜
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 番外篇1:在Windows环境下安装JDK
  • 机器学习中为什么要做归一化normalization
  • 基于组件的设计工作流与界面抽象
  • 每天一个设计模式之命令模式
  • 软件开发学习的5大技巧,你知道吗?
  • 收藏好这篇,别再只说“数据劫持”了
  • 在electron中实现跨域请求,无需更改服务器端设置
  • MPAndroidChart 教程:Y轴 YAxis
  • 带你开发类似Pokemon Go的AR游戏
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #Ubuntu(修改root信息)
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (2.2w字)前端单元测试之Jest详解篇
  • (3)(3.5) 遥测无线电区域条例
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (一)u-boot-nand.bin的下载
  • (转)Google的Objective-C编码规范
  • ****三次握手和四次挥手
  • .gitattributes 文件
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .NET 直连SAP HANA数据库
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .NET中winform传递参数至Url并获得返回值或文件