docker方式 部署jenkins服务,实现持续集成(CI/CD)功能

news2024/11/30 14:41:36

一、背景:

因公司需求,需要部署一套jenkins自动化部署服务,并且是通过docker容器的方式部署的。

二、jenkins简介:

什么是Jenkins ?

 Jenkins是一个开源软件,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成( CI/CD)。

三:CICD流程简介: 

持续集成( CI/CD)是什么?

CI(Continuous Integration)始终指持续集成 ,CD(Continuous Delivery/Continuous Deployment)是持续交付和/或持续部署,总结为如下三点。

  • 持续集成
  • 持续交付
  • 持续部署

cicd基本流程:

四、docker部署jenkins服务:

1、拉取jenkins镜像:

docker search jenkinsci/blueocean

docker pull jenkinsci/blueocean

[root@iZwz9ippftvoxv000lpl0tZ ~]# docker search jenkinsci/blueocean
NAME                  DESCRIPTION                             STARS     OFFICIAL
jenkinsci/blueocean   https://jenkins.io/projects/blueocean   732       
[root@iZwz9ippftvoxv000lpl0tZ ~]# docker pull jenkinsci/blueocean
Using default tag: latest
latest: Pulling from jenkinsci/blueocean
97518928ae5f: Already exists 
f4d84728e541: Already exists 
419d112ff4fa: Already exists 
ecf8c1881f75: Already exists 
78b59c3bfdb7: Already exists 
2ff43df4e763: Already exists 
aac7818be7cc: Already exists 
2913a3e94ae4: Already exists 
f75b1dac4ec0: Already exists 
3d3fbe6f1850: Already exists 
07ef919d711b: Already exists 
5b96e9c30f6a: Already exists 
83dcd37be04b: Already exists 
6beb8929489c: Already exists 
476e95021232: Already exists 
9add339bd1dd: Already exists 
ecb71d48971e: Already exists 
384cd4783059: Already exists 
latest: Pulling from jenkinsci/blueocean
Digest: sha256:f27933313986f7fb0b5784aa6520ebddc455ce258cbf4d13a3e3cf9d4c94d992
Status: Image is up to date for jenkinsci/blueocean:latest
docker.io/jenkinsci/blueocean:latest

 2、部署jenkins服务:

执行部署jenkins容器服务命令:

docker run -p 8080:8080 -p 8081:8081 -p 50000:50000 --name jenkins -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

[root@iZwz9ippftvoxv000lpl0tZ ~]# docker run -p 8080:8080 -p 8081:8081 -p 50000:50000 --name jenkins -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
2024-04-17 08:01:21.037+0000 [id=1]     INFO    org.eclipse.jetty.util.log.Log#initialized: Logging initialized @675ms to org.eclipse.jetty.util.log.JavaUtilLog
2024-04-17 08:01:21.151+0000 [id=1]     INFO    winstone.Logger#logInternal: Beginning extraction from war file
2024-04-17 08:01:21.183+0000 [id=1]     WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2024-04-17 08:01:21.277+0000 [id=1]     INFO    org.eclipse.jetty.server.Server#doStart: jetty-9.4.45.v20220203; built: 2022-02-03T09:14:34.105Z; git: 4a0c91c0be53805e3fcffdcdcc9587d5301863db; jvm 11.0.16.1+1
2024-04-17 08:01:21.620+0000 [id=1]     INFO    o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2024-04-17 08:01:21.675+0000 [id=1]     INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0
2024-04-17 08:01:21.675+0000 [id=1]     INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults
2024-04-17 08:01:21.680+0000 [id=1]     INFO    o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 600000ms
2024-04-17 08:01:22.278+0000 [id=1]     INFO    hudson.WebAppMain#contextInitialized: Jenkins home directory: /var/jenkins_home found at: EnvVars.masterEnvVars.get("JENKINS_HOME")
2024-04-17 08:01:22.595+0000 [id=1]     INFO    o.e.j.s.handler.ContextHandler#doStart: Started w.@1b1637e1{Jenkins v2.346.3,/,file:///var/jenkins_home/war/,AVAILABLE}{/var/jenkins_home/war}
2024-04-17 08:01:22.638+0000 [id=1]     INFO    o.e.j.server.AbstractConnector#doStart: Started ServerConnector@5b12b668{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
2024-04-17 08:01:22.638+0000 [id=1]     INFO    org.eclipse.jetty.server.Server#doStart: Started @2278ms
2024-04-17 08:01:22.646+0000 [id=23]    INFO    winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled
2024-04-17 08:01:22.937+0000 [id=30]    INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
2024-04-17 08:01:23.318+0000 [id=31]    INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2024-04-17 08:01:28.570+0000 [id=31]    INFO    jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2024-04-17 08:01:28.630+0000 [id=30]    INFO    jenkins.InitReactorRunner$1#onAttained: Started all plugins
2024-04-17 08:01:28.718+0000 [id=30]    INFO    jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/var/jenkins_home/war/WEB-INF/lib/groovy-all-2.4.21.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2024-04-17 08:01:30.446+0000 [id=31]    INFO    jenkins.InitReactorRunner$1#onAttained: System config loaded
2024-04-17 08:01:30.447+0000 [id=31]    INFO    jenkins.InitReactorRunner$1#onAttained: System config adapted
2024-04-17 08:01:30.448+0000 [id=31]    INFO    jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2024-04-17 08:01:30.453+0000 [id=29]    INFO    jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
2024-04-17 08:01:30.496+0000 [id=45]    INFO    hudson.model.AsyncPeriodicWork#lambda$doRun$1: Started Download metadata
2024-04-17 08:01:30.506+0000 [id=45]    INFO    hudson.model.AsyncPeriodicWork#lambda$doRun$1: Finished Download metadata. 8 ms
2024-04-17 08:01:30.601+0000 [id=30]    INFO    jenkins.install.SetupWizard#init: 

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

436c75eef44d4db1a72f47da0300f659

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

2024-04-17 08:01:46.417+0000 [id=30]    INFO    jenkins.InitReactorRunner$1#onAttained: Completed initialization
2024-04-17 08:01:46.532+0000 [id=22]    INFO    hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running

注意这里可以获取Jenkins控制台登陆密码,后面会需要用到。

3、登入jenkins服务:

这样利用你访问机器的IP地址+8080 即可出现jinkens的界面

 会显示如下的内容

这里需要输入上面的获取到密码:436c75eef44d4db1a72f47da0300f659 

4、初始化jenkins服务: 

上面输入密码之后就会跳转到如下界面
注:这里选择推荐的插件

选择之后弹出如下:

创建一个管理员用户: 

 

保存之后,需要重启一下jenkins服务。然后登入一下jenkins。

到此,jenkins服务的部署就完成了。

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

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

相关文章

VS集成vcpkg

VS集成vcpkg 下载vcpkg 下载vcpkg git clone https://github.com/Microsoft/vcpkg.git安装vcpgk,文件目录 .\bootstrap-vcpkg.bat集成到vs2022中 # 集成到项目 vcpkg integrate project vcpkg integrate installPS C:\Users\Administrator> vcpkg integrate…

Python入门教程完整版(懂中文就能学会)

网友虐我千百遍,我待网友如初恋,因为今天又给大家带来了干货,Python入门教程完整版,完整版啊!完整版! 为了吸取教训,小编一定要分享一下攻略,“怎样获得小编分享的教程呢&#xff1…

多线程同步:使用 std::mutex 和 std::unique_lock 保护共享资源

在当今的软件开发中,多线程编程是一项至关重要的技术,它允许程序同时执行多个任务,从而提高应用程序的效率和响应速度。然而,多线程环境也带来了数据安全和一致性的挑战。在多个线程需要访问和修改同一数据资源的情况下&#xff0…

【SAP NWDI】创建DC(Development component)(三)

一、准备DC组件包 首先需要下载下面这7个sca 的组件包,找到对应的ME版本的组件包,可以找对应的Basis帮忙下载。然后把这7个组件包放入到服务器中根目录的这个目录中,如果目录没有的需要自己创建出来。 二、导入DC组件包 注意:下面的的图中 有需要填写 in 和 out 的连个目…

RabbitMQ-核心特性

已经不需要为RabbitMQ交换机的离去而感到伤心了,接下来登场的是RabbitMQ-核心特性!!! 文章目录 核心特性消息过期机制消息确认机制死信队列 核心特性 消息过期机制 官方文档:https://www.rabbitmq.com/ttl.html 可以给每条消息指定一个有效期&#xf…

富文本在线编辑器 - tinymce

tinymce 项目是一个比较好的富文本编辑器. 这里有个小demo, 下载下来尝试一下, 需要配置个本地服务器才能够访问, 我这里使用的nginx, 下面是我的整个操作过程: git clone gitgitee.com:chick1993/layui-tinymce.git cd layui-tinymcewget http://nginx.org/download/nginx-1.…

监控系统泛滥:CTO 面临的隐形成本危机

在信息技术飞速发展的今天,构建和维护现代化的数字系统变得日益复杂和关键;在这样的背景下,监控系统的作用变得尤为突出。正如业界广泛流传的一句经验之谈“无监控,不运维”所揭示的道理一样,对于任何具有一定复杂性的…

Redis(Windows版本下载安装和使用)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

lua 光速入门

文章目录 安装注释字符串变量逻辑运算条件判断循环函数Table (表)常用全局函数模块化 首先明确 lua 和 js Python一样是动态解释性语言,需要解释器执行。并且不同于 Python 的强类型与 js 的弱类型,它有点居中,倾向于强类型。 安装 下载解释…

AI预测福彩3D第38弹【2024年4月17日预测--第8套算法开始计算第6次测试】

今天咱们继续测试第8套算法和模型,今天是第5次测试,目前的测试只是为了记录和验证,为后续的模型修改和参数调整做铺垫,所以暂时不建议大家盲目跟买~废话不多说了,直接上结果! 2024年4月17日3D的七码预测结果…

vivado 与 VIO 核输出探针进行交互

与 VIO 核输出探针进行交互 VIO 核输出探针用于将值写入实际硬件中的 FPGA 或 ACAP 中运行的设计。 VIO 输出探针通常用作为待测设计的低带 宽控制信号。 VIO 调试探针需手动添加到 VIO 仪表板的“ VIO 探针 (VIO Probes) ”窗口中。请参阅“在‘调试探针 (Debug Pr…

中国12.5米DEM地形瓦片数据免费领取!

之前向大家公开了中国34个省12.5米DEM地形瓦片数据的免费领取链接,大家对12.5米DEM数据的使用需求很强烈,领取也很积极,也有不少读者反馈能否提供全国范围的12.5米DEM地形瓦片数据,因为分省级地形瓦片数据想要合并成全国数据&…

CUDA 以及MPI并行矩阵乘连接服务器运算vscode配置

一、CUDA Vscode配置 (一)扩展安装 本地安装 服务器端安装 (二) CUDA 配置 .vscode c_cpp_properties.json {"configurations": [{"name": "Linux","includePath": ["${workspa…

【AI】DeepStream(01)介绍

1、简介 DeepStream 本质是 GStreamer 的插件,基于GStreamer的管道,实现高效的视频流分析。 DeepStream 将来自 USB/CSI 摄像头的流数据、来自文件的视频或通过 RTSP 的流作为输入,并使用人工智能和计算机视觉从像素中生成AI结果。 DeepStream SDK 可以成为许多视频分析解…

C++ queue priority_queuestack 详解及模拟实现

1. stack的介绍和使用 1.1 stack的介绍 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。 2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容…

【华为笔试题汇总】2024-04-17-华为春招笔试题-三语言题解(Python/Java/Cpp)

🍭 大家好这里是KK爱Coding ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为近期的春秋招笔试题汇总~ 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢&#x1f…

吴恩达2022机器学习专项课程(一) 第二周课程实验:特征工程和多项式回归(Lab_04)

目标 探索特征工程和多项式回归,使用线性回归来拟合非常复杂甚至非线性的函数。 1.为什么线性回归能拟合非线性函数? fxw*xb,属于线性回归的扩展,这个公式在数学中不属于线性,因为有x,而在机器学习中属于…

【云计算】云数据中心网络(六):私网连接

云数据中心网络(六):私网连接 1.什么是私网连接2.私网连接的组成3.私网连接的优势4.私网连接的主要应用场景 前面讲到 VPC 网络具有隔离性,VPC 之间无法通信。当一个 VPC 中的终端需要访问部署在另一个 VPC 中的服务时&#xff0c…

江苏开放大学2024年春《测试技术 060245》作业3参考答案

答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 单选题 1相关系数ρxy的取值范围处于( )之间。 A-1和0 B…

OpenCV基本图像处理操作(十一)——图像特征Sift算法

图像尺度空间 在一定的范围内,无论物体是大还是小,人眼都可以分辨出来,然而计算机要有相同的能力却很难,所以要让机器能够对物体在不同尺度下有一个统一的认知,就需要考虑图像在不同的尺度下都存在的特点。 尺度空间的…