Docker + Jenkins + gitee 实现CICD环境搭建

news2024/11/24 12:11:08

目录

前言

 关于Jenkins

安装Jenkins

 docker中运行Jenkins注意事项

通过容器中的Jenkins,把服务打包到docker进行部署

启动Jenkins

 创建第一个任务


前言

        CI/CD(持续集成和持续交付/持续部署),它可以实现自动化的构建、测试和部署流程,开发人员可以将更多精力集中在创新和功能开发上,而不是维护和集成问题;本文将使用docker中的Jenkins快速搭建出基本环境;

在这里插入图片描述

 关于Jenkins

        Jenkins是一个开源的自动化服务器,主要用于持续集成(CI)和持续交付(CD),本文我们将采用Jenkins来进行配置部署;

安装Jenkins

使用docker 安装直接拉取镜像进行安装;

需要先安装好docker;docker没有安装可以看我的这篇文章:【docker入门】docker的安装

然后执行以下命令:

docker run -d -p 8080:8080 jenkins/jenkins

 即可自动拉取镜像,并运行;

 docker中运行Jenkins注意事项

        采用docker 运行 Jenkins,直接上述明确启动会有一个问题,就是一旦删除容器,再次启动前边的配置信息就都没了,为了保留他配置信息,所以需要把Jenkins的存储卷挂载到宿主机

 -v jenkins_home:/var/jenkins_home

 这样每次删除容器后,重新创建容器,并挂载宿主机中的存储卷,就可以保留前边的配置信息;

通过容器中的Jenkins,把服务打包到docker进行部署

    容器里控制容器方式有多种,需要安装插件操作比较复杂,这里推荐一种比较简单的方式:

首先想要执行 docker 的命令,并且还可以拉取镜像就需要额外挂载两个目录:

-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/bin/docker:/usr/bin/docker

这样就使得容器能够与宿主机上的 Docker 守护进程进行通信;

也就是说让容器之间控制宿主机上的docker;

 一下是完整的命令:

docker run --name jenkins -d --privileged -p 8081:8080 -p 50000:50000\
-v jenkins_home:/var/jenkins_home\
-v /var/run/docker.sock:/var/run/docker.sock\
-v /usr/bin/docker:/usr/bin/docker\
-u root 镜像id

 -p 8081:8080 和 -p 50000:50000: 映射端口,8081 映射到容器的 8080 端口(Jenkins Web 界面),50000 用于 Jenkins 的代理连接;

启动Jenkins

        前边的基础环境搭好了,现在就可以之间在浏览器访问Jenkins;

首次访问会出现以下页面:

查看密钥可以使用:

查看Jenkins容器的日志

docker logs Jenkins

 把密钥输入到管理员密码框;然后点击继续;

然后看到一下页面:

 然后等待插件安装:

 博主在使用war包之间运行时出现了插件全部安装失败的情况,所以采用了docker部署的方式,docker中的一般都已经配置好,不需要修改额外的配置;

安装完成之后创建用户:

输入信息然后点击保存并完成 ;

 根据引导进入Jenkins首页:

 创建第一个任务

 

 根据需求创建一个任务,这里演示就创建一个free风格的任务;然后点击确认:

 然后进入以下页面:

 

 gitee的仓库的url在gitee上进行查看:

 输入之后添加凭证:

仓库为私有就添加,公开仓库就可以不添加

 然后就会进入以下页面:

选择用户名密码:

 然后输入用户名密码即可,id和描述可自行添加;

选择拉取的分支:

 然后就是构建触发器,可以根据情况进行设置,使用gitee的webhook出现的问题较多,后续会出一篇文章进行介绍演示;

设置构建步骤:

想把服务打包成镜像就需要在这里选择shell;

 可以在命令行框中输入一个docker 命令,查看是否可以使用docker来进行测试:

 ​​​​​​

 在框中输入要执行的shell命令即可;设置完成之后即可保存;

点击立即构建即可测试gitee与是否

 查看是否成功:

点击构建记录,两个框中的任何一个都可以,点击某一条构建记录;

 然后进入这个界面:

 点击控制台输出,即可查看执行情况;

 docker命令执行成功,也就是说Jenkins可以执行docker命令;


以上便是本文的全部内容,希望对你有所帮助,最后感谢阅读!

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

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

相关文章

linux之文件(上)

linux之文件(上) 一.文件的预备知识二.C语言的文件接口和linux的系统接口2.1fopen2.2fclose2.3open2.4close2.5write2.6read 三.文件与系统3.1文件描述符3.2 标准输入,标准输出和标准错误3.3fd的分配规则 四.重定向4.1重定向的概念4.2重定向的…

【进度猫-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

多维视角下的知识管理:Spring Boot应用

2 开发技术 2.1 VUE框架 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。 Vue 只关注视图层, 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 2.2 Mysql数据库 …

【卷积基础】CNN中一些常见卷积(1*1卷积、膨胀卷积、组卷积、深度可分离卷积)

文章目录 逐通道卷积(Pointwise Convolution,1x1 卷积)主要作用逐通道卷积的操作过程优势代码示例典型应用 膨胀卷积(Dilated Convolution)主要作用工作原理膨胀率 (dilation rate) 的定义代码实例膨胀卷积的优点 组卷…

算法【Java】—— 动态规划之路径问题

前言 本文章终点解析第一道题目【不同路径】和最后一道题目【地下城游戏】的动态规划思路,中间几道题目会很快过完,大家如果不熟悉动态规划的思路可以重点看一下这两道题目的解析。 不同路径 https://leetcode.cn/problems/unique-paths 解析&#xf…

Linux - 信号

文章目录 一、信号的定义二、查看信号三、产生信号1、指令2、系统调用3、由软件条件产生信号4、异常5、键盘输入 四、保存信号1、补充:信号其他相关概念2、信号保存在哪,怎么保存?3、信号集操作函数 五、捕获信号1、概念2、捕获信号的时机3、…

group_concat配置影响程序出bug

在 ThinkPHP 5 中,想要临时修改 MySQL 数据库的 group_concat_max_len 参数,可以使用 原生 SQL 执行 来修改该值。你可以通过 Db 类来执行 SQL 语句,从而修改会话(Session)级别的变量。 步骤 设置 group_concat_max_l…

云专线优势有哪些?对接入网络有什么要求?

云专线是一种连接企业本地数据中心与云服务提供商之间的专用网络连接方式,具有以下优势: 高安全性:云专线提供了物理隔离的数据传输通道,减少了数据在公共互联网上传输时可能遭遇的安全风险。 低延迟:由于是直接连接&a…

【提高篇】3.1 GPIO(二,结构与工作模式介绍)

目录 一,GPIO的基本结构 1.1 保护二极管 1.2 上拉、下拉电阻 1.3 施密特触发器 1.4 P-MOS 管和 N-MOS 管 P-MOS管和N-MOS管的区别 1.5 片上外设 1.6 IDR,ODR,BSRR寄存器 1.6.1 IDR(Input Data Register) 1.6.2 ODR(Output Data Register) 1.6.3 BSRR(Bit Se…

数据迁移: 安全高效转移数据, 满足企业业务需求和技术改进

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据存储、数据恢复、数据备份、数据迁移等解决方案与服务,并针对企业面临的数据安全风险,提供专业的相关数据安全培训。 鸿萌数据迁移业务为众多企业顺利高效…

Am I Isolated:一款安全态势基准测试工具

基于Rust的容器运行时扫描器作为一个容器运行,检测用户容器运行时隔离中的漏洞。 它还提供指导,帮助用户改善运行时环境,以提供更强的隔离保证。 容器的现状是它们并不包含(隔离)。 容器隔离的缺失在云原生环境中有…

战略共赢 软硬兼备|云途半导体与知从科技达成战略合作

2024年11月5日,江苏云途半导体有限公司(以下简称“云途”或“云途半导体”)与上海知从科技有限公司(以下简称“知从科技”)达成战略合作,共同推动智能汽车领域高端汽车电子应用的开发。 云途半导体与知从科…

基于卷积神经网络的农作物病虫害识别系统(pytorch框架,python源码)

更多图像分类、图像识别、目标检测等项目可从主页查看 功能演示: 基于卷积神经网络的农作物病虫害检测(pytorch框架)_哔哩哔哩_bilibili (一)简介 基于卷积神经网络的农作物病虫害识别系统是在pytorch框架下实现的…

2-149 基于matlab的LDPC译码性能分析

基于matlab的LDPC译码性能分析,LDPC(Low-Density Parity-Check)码作为编码技术,具有优秀的纠错性能和较低的编解码复杂度。为保证可靠的数据传输,对传输过程中可能出现的信道噪声、干扰等进行模拟和分析。分析对比了误…

算法每日双题精讲——双指针(快乐数,盛最多水的容器)

🌟快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 🌟 别再犹豫了!快来订阅我们的算法每日双题精讲专栏,一起踏上算法学习的精彩之旅吧!💪…

在Scrapy爬虫中应用Crawlera进行反爬虫策略

在互联网时代,数据成为了企业竞争的关键资源。然而,许多网站为了保护自身数据,会采取各种反爬虫技术来阻止爬虫的访问。Scrapy作为一个强大的爬虫框架,虽然能够高效地抓取网页数据,但在面对复杂的反爬虫机制时&#xf…

Linux(CentOS)安装 JDK

CentOS版本:CentOS 7 JDK版本:JDK17 1、下载 JDK 官网:https://www.oracle.com/ 2、上传 JDK 文件到 CentOS 使用FinalShell远程登录工具,并且使用 root 用户连接登录(注意这里说的root用户连接登录是指这样的&…

redis和数据库的数据一致性

在我们使用redis作为缓存的时候,数据库和缓存数据保持一致性就显得尤为重要,因为如果不做处理的话很有可能读取到的数据会出现差错,那这里怎么进行解决呢? 首先我们先来看一下操作数据到底是直接删除数据还是说通过修改的方式来修…

发布 VectorTraits v3.0(支持 X86架构的Avx512系列指令集,支持 Wasm架构及PackedSimd指令集等)

文章目录 支持 X86架构的Avx512系列指令集支持Avx512时的输出信息 支持 Wasm架构及PackedSimd指令集支持PackedSimd时的输出信息VectorTraits.Benchmarks.Wasm 使用说明 新增了向量方法支持 .NET 8.0 新增的向量方法提供交织与解交织的向量方法YGroup3Unzip的范例代码 提供重新…

工业相机常用功能之白平衡及C++代码分享

目录 1、白平衡的概念解析 2、相机白平衡参数及操作 2.1 相机白平衡参数 2.2 自动白平衡操作 2.3 手动白平衡操作流程 3、C++ 代码从XML读取参数及设置相机参数 3.1 读取XML 3.2 C++代码,从XML读取参数 3.3 给相机设置参数 1、白平衡的概念解析 白平衡(White Balance)…