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

devtools/2024/10/22 9:41:12/

一、背景:

因公司需求,需要部署一套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:436c75eef44d4db1a72f47da0300f659This 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.ppmy.cn/devtools/6910.html

相关文章

小记一篇 vuecli4项目 打包内存溢出问题

目录 背景先解决内存溢出问题 让项目能够打包打包优化公共第三方模块 提取出来 不走webpack 打包 , 改成 cdn 引入项目中使用 图片等 静态资源 全部走cdn使用thread-loader 开启多线程打包 后序 背景 其他项目组有个项目迭代了3年,突然有一天 vuecli-4 webpack打包…

webgl canvas系列——animation中基本旋转、平移、缩放(模拟冒泡排序过程)

文章目录 ⭐前言⭐canvas绘制图片💖状态保存和恢复💖移动、旋转、缩放、变形💖移动绘制一个渐变的box💖旋转💖缩放 ⭐模拟冒泡排序过程⭐结束 ⭐前言 大家好,我是yma16,本文分享webgl canvas系…

C++ 几句话彻底点通虚表

#include <iostream>using namespace std;class Base { public:virtual void show() // 声明虚函数{cout << "Base" << endl;} };class Derived : public Base { public:void show() override // 覆盖虚函数{cout << "Derived" &l…

如何理解数据库事务

事务的概念起源于数据库系统的设计和实现。在计算机科学领域中&#xff0c;数据库系统被广泛用于存储和管理大量的数据&#xff0c;而事务的概念则是为了解决多用户并发访问数据库时可能出现的一系列问题。 事务的概念最早由 IBM 的科学家 Edgar F. Codd 在 1970 年提出。Codd…

vue+Element-ui实现模板文件下载

最近实现一个功能&#xff0c;数据过多&#xff0c;录入系统的时候过慢&#xff0c;所以新增一个导入数据的功能。 导入数据的话&#xff0c;为了防止用户随意输入&#xff0c;或者不知道怎么输入&#xff0c;所以特完成模板下载功能。 通常情况下实现模板下载采用a标签即可实现…

mac jd-gui安装

在macOS上安装JD-GUI&#xff08;Java Decompiler GUI&#xff09;是一个简单的过程。JD-GUI是一个独立的图形化应用程序&#xff0c;你可以使用它来查看Java字节码对应的源代码。下面是安装步骤&#xff1a; 下载JD-GUI&#xff1a; 访问JD-GUI的官方网站&#xff08;http://j…

XiaodiSec day034 Learn Note 小迪渗透学习笔记

XiaodiSec day034 Learn Note 小迪渗透学习笔记 记录得比较凌乱&#xff0c;不尽详细 day34 黑盒审计和白盒审计 与 cms 相关 .net java php 代码审计 开始 黑盒&#xff1a;找文件上传的功能 个人用户中心是否存在文件上传功能后台管理系统是否存在文件上传功能字典目录…

深入理解人工智能:从基础到前沿/厾罗

导言&#xff1a; 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经成为了一个家喻户晓的概念。无论是在电影中看到的智能机器人&#xff0c;还是我们日常生活中的智能助手&#xff0c;人工智能的应用已经无处不在。但人工智能究竟是什么&#xff1f;它如…