Docker快速创建一个单机版的Jenkins实例

谈到 CI/CD,那便少不了这里面的佼佼者 Jenkins,正如 Jenkins 官网说的一样:“Build great things at any scale”,构建伟大,无所不能!

话不多说,该篇文章将会带你使用 Docker 快速创建一个单机版的 Jenkins 实例以及创建一个简单的 Pipeline 项目。

一、创建 Jenkins 实例

这里我们将使用 Docker 进行安装一个单机版的 Jenkins(这里假设你了解 Docker 等工具的使用):

docker run -d --name jenkins \
  -p 50000:50000 \
  -p 8080:8080 \
  -v /srv/jenkins:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /usr/bin/docker:/usr/bin/docker \
  -u root \
  --restart always \
  jenkins/jenkins:2.263.4

也可以使用 DockerCompose 进行安装,创建 docker-compose.yaml 文件并添加以下内容,然后运行 docker-compose up -d

version: '3.7'
services:
  jenkins:
    image: jenkins/jenkins:2.263.4
    ports:
      - 50000:50000
      - 8080:8080
    volumes:
      - /srv/jenkins:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker
    user: root
    restart: always
    container_name: jenkins
  • 解释下这里的一些运行选项:
  • ports
  • 50000:50000 用于集群部署
  • 8080:8080 用于浏览器访问
  • volumes
  • /srv/jenkins:/var/jenkins_home 主要数据目录
  • /var/run/docker.sock:/var/run/docker.sock 挂载宿主机的 docker 套接字文件
  • /usr/bin/docker:/usr/bin/docker 挂载宿主机的 docker 可执行文件
  • user: root 由于 jenkins 容器默认使用的是 jenkins 用户,而我使用的是 root 用户运行的,如果不加,将会因为权限不够无法读写目录 /srv/jenkins,这里当然也有其他办法解决这个问题,比如修改目录 /srv/jenkins 的权限给 jenkins 用户。
  • 这里挂载 docker 相关的文件是为了在执行流水线的时候可以使用 docker 环境。

访问http://your_ip:8080便可以看到下面这个页面:

这里需要一个 Administrator password 才可以继续安装,现在我们回到宿主机执行下面的命令获取它:

# docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
dfd97892d82e43f18437ac628908b0b5

这里我们选择安装推荐的插件:

接下来便可以看到 Jenkins 在自动帮我们安装一些插件,包括常用的 GitPipeline 等:

然后需要创建第一个用户:

最后配置访问的地址,如果没有绑定域名的话,就直接默认即可:

接下来就开始我们的 CI/CD 之旅吧!

 

二、Pipeline 项目

点击 New Item 创建我们的第一个 Pipeline 项目:

编写 Pipeline 脚本,打印一行 Hello World

pipeline {
    agent any
 
    stages {
        stage('Hello') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

点击 Save 保存,然后点击 Build Now 立即运行,我们可以看到运行结果如下:

三、总结

本文主要针对刚接触 CI/CD 以及 Jenkins 的朋友们,介绍了如何基于 Docker 快速创建 Jenkins 实例,创建了一个简单的 Hello World 流水线项目,希望能帮助大家快速入门 Jenkins!

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

计算机网络(一)| 概述 因特网 性能 协议基本

文章目录 1. 因特网组成1.1 四元素组成1.2 二元素组成1.3 核心部分 2.计算机网路的功能3. 几种不同类别的网络4 性能指标5 网路协议5.1网络体系结构 6 PDU 互联网(或因特网)之所以能够向用户提供服务,是因为互联网具有两个重要基本特点 连通性…

Siemens-NXUG二次开发-C/C++/Python环境配置[20231204]

Siemens-NXUG二次开发-C/C/Python运行方式[20231204] 1.NX/UG C/C/Python API官方开发文档2.运行方式2.1内部模式2.2 外部模式2.3 许可证书服务器启动 3.C/C环境配置4.Python环境配置5.第三方环境配置 1.NX/UG C/C/Python API官方开发文档 西门子NX/UG Python api开发文档&…

C++ day48 打家劫舍

题目1:198 打家劫舍 题目链接:打家劫舍 对题目的理解 专业小偷偷盗房屋的钱财,每个房屋存放的金额用非负整数数组表示; 如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警; 不触动警报装置的情况…

简单3D姿态基线模型网络架构与验证【SIM】

在这篇文章中,我们将回顾 ICCV’17 上提出的 Simple 3D Pose Baseline ,即用于 3d 人体姿势估计的简单而有效的基线,也称为 SIM。 NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在…

Pandas进阶:拼接 concat 使用方法

1.处理索引和轴 假设我们有2个关于考试成绩的数据集。 df1 pd.DataFrame({ name:[A,B,C,D],math:[60,89,82,70],physics:[66, 95,83,66],chemi…

Siemens-NXUG二次开发-新建与保存prt文件[Python UF][20231204]

Siemens-NXUG二次开发-新建与保存prt文件[Python UF][20231204] 1.python uf函数1.1 NXOpen.UF.Part.New1.2 NXOpen.UF.Part.Save1.3 NXOpen.UF.Ui.OpenListingWindow1.4 NXOpen.UF.Ui.IsListingWindowOpen1.5 NXOpen.UF.Ui.WriteListingWindow1.6 NXOpen.UF.Ui.SaveListingWin…

Spring MVC学习随笔-文件下载和上传(配置文件上传解析器multipartResolver)

学习视频:孙哥说SpringMVC:结合Thymeleaf,重塑你的MVC世界!|前所未有的Web开发探索之旅 学习视频:【编程不良人】继spring之后快速入门springmvc,面对SpringMVC不用慌 六、SpringMVC 文件上传下载 6.1 文件…

LeetCode(49)用最少数量的箭引爆气球【区间】【中等】

目录 1.题目2.答案3.提交结果截图 链接: 用最少数量的箭引爆气球 1.题目 有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] [x_start, x_end] 表示水平直径在 x_start 和 x_end之间的气球。你不知道气…

【WPF.NET开发】创建简单WPF应用

本文内容 先决条件什么是 WPF?配置 IDE创建项目设计用户界面 (UI)调试并测试应用程序 通过本文你将熟悉在使用 Visual Studio 开发应用程序时可使用的许多工具、对话框和设计器。 你将创建“Hello, World”应用程序、设计 UI、添加代码并调试错误。在此期间&#…

leetcode 142.环形链表2

我来更新 leetcode 题目了,接着上一次,这一次是上一道题目的提升(有点数学题的感觉) 142.环形链表2 题目 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表…

CCKS2023-面向上市公司主营业务的实体链接评测-亚军方案

赛题分析 大赛地址 https://tianchi.aliyun.com/competition/entrance/532097/information 任务描述 本次任务主要针对上市公司的主营业务进行产品实体链接。需要获得主营业务中的产品实体,将该实体链接到产品数据库中的某一个标准产品实体。产品数据库将发布在竞赛…

RK3568平台开发系列讲解(Linux系统篇) dtb 到 device_node 的转化

🚀返回专栏总目录 文章目录 一、dtb 展开流程二、dtb 解析过程源码分析沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍通过设备树 dtb 如何展开成 device_node 一、dtb 展开流程 设备树源文件编写: 根据设备树的基本语法和相关知识编写符合规范的设备树。…

工具类整理

常用工具类 在java的庞大体系中,其实有很多不错的小工具,也就是我们平常说的:轮子。 CollectionUtils 目前比较主流的是spring的org.springframework.util包下的CollectionUtils工具类。和apache的org.apache.commons.collections包下的Co…

根据豆瓣对《流浪地球》的短评数据进行文本分析和挖掘

1背景 2019年2月5日电影《流浪地球》正式在中国内地上映。该电影在举行首映的时候,口德好得出奇,所有去看片的业界大咖都发出了画样赞叹,文化学者能锦说:“中国科幻电影元年开启了。"导演徐峰则说,“里程碑式的电影&#xf…

实时流式计算 kafkaStream

文章目录 实时流式计算Kafka StreamKafka Streams 的关键概念KStreamKafka Stream入门案例编写SpringBoot 集成 Kafka Stream 实时流式计算 一般流式计算会与批量计算相比较 流式计算就相当于上图的右侧扶梯,是可以源源不断的产生数据,源源不断的接收数…

WEB服务器配置与HTTP分析

目录 实验目的: 实验要求: 实验原理: 实验步骤: 步骤1:创建拓扑 步骤2:为PC、Client和Server配置IPv4地址、子网掩码和域名服务器 步骤3:启动设备和服务器 步骤4:测试PC-1、C…

【Qt开发流程】之自定义语法高亮和使用HTML语法

描述 语法高亮(Syntax Highlighting)是一种在编辑器中突出显示代码语法元素的技术,使其更易于阅读和理解。 Qt提供了一个功能齐全的语法高亮框架,支持多种语言和格式,可以自定义颜色和样式。 对于使用Qt的开发人员来说…

HADOOP::Fsimage和Edits解析

NameNode被格式化之后,将在/opt/module hadoop-3.1.3/data/tmp/dfs/name/curent目录 中产生如下文件 fsimage_ 0000000000000000000 fsimage_ 0000000000000000000.md5 seen_txid VERSION (1) Fsimage文件: HDFS文件系统元数据的一个永久性的检查点&#xff0…

使用pytorch从零开始实现迷你GPT

生成式建模知识回顾: [1] 生成式建模概述 [2] Transformer I,Transformer II [3] 变分自编码器 [4] 生成对抗网络,高级生成对抗网络 I,高级生成对抗网络 II [5] 自回归模型 [6] 归一化流模型 [7] 基于能量的模型 [8] 扩散模型 I, 扩散模型 II…

机器学习决策树ID3算法

1、先去计算总的信息量 2、根据不同指标分别计算对应的信息增益 3、根据算出的信息增益来选择信息增益最大的作为根结点 4、天气中选择一个继续上述过程 5、决策树划分结束