如何使用 Docker 搭建 Jenkins 环境?从安装到精通

embedded/2024/12/21 22:08:59/

最近有不少同学搭 jenkins 环境有问题,有的同学用 window, 有的同学用 mac, 有的同学用 linux。
还有的同学公司用 window, 家里用 mac,搭个环境头发掉了一地。。。

这回我们用 docker 去搭建 jenkins 环境,不管你是用的是什么系统,jenkins 搭建起来都是一样的步骤。

而且使用 Docker 以后,不仅是装 jenkins, 装其他的服务器环境也都是标准化流程,不需要担心系统问题了。

安装Docker

Docker 安装在 mac 和 linux 下比较简单,照着官方文档做就行了。

windows 下比较复杂,因为 Docker 整个技术都是基于 linux 容器的,在 windows 下安装会有兼容问题,不过 Docker 官方很贴心的准备了 toolbox 工具,直接下载 toolbox, 傻瓜式安装,跟普通软件没什么差别。

接下来的讲解都是基于 toolbox 工具(因为我的机器是 windows),不需要装 toolbox 的系统会更简单,全局只需要记住 docker 这一个命令就够了。

toolbox 安装好以后,先检查 docker 有没有安装成功:

$ docker --help

等待一下,如果不报错,就说明成功了。

连接虚拟机

接下来要连接虚拟机(就是一台装了 docker 的 linux)。这个虚拟机你不需要手动安装,安装 toolbox 的时候已经自动装好了。

因为有的 windows 系统是不能直接运行 docker 的, toolbox 实际上是利用 virtualbox 等工具启动一台虚拟机(Linux VM),这台虚拟机会内置 docker , 运行容器。(不是 toolbox 用户请忽略)

启动虚拟机

$ docker-machine start default

启动虚拟机以后,登录虚拟机。以后所有的 docker 操作我们就在虚拟机上去做,不在 windows 的命令行操作了。

#进入虚拟机,之后可以执行 linux 的 shell 命令了

docker-machine ssh default

(以下所有的操作都是在虚拟机上执行了)。使用 docker 命令运行 jenkins 容器

图片

/your/home 就是本机上要保存的 jenkins 数据,你可以把项目的代码放到这个目录的 workspace 当中。

比如我想把数据保存到本机的 /c/Users/muji/jenkins 目录下, 那我会先在本地创建目录,然后把目录添加到命令当中。

运行这一条指令,会从 Docker 仓库里下载 jenkins 包自动安装到本地。官方下载会比较慢,请耐心等待。

有精力的同学可以去配置一个国内的加速地址。

运行到中途会出现 jenkins 的默认登录密码,请复制下来。不然之后要倒目录当中去找了:

图片

出现这样的,就表示安装成功了:

图片

启动成功以后。就可以在本机的 8080 端口访问 jenkins 了!

注意:windows toolbox 用户不能直接输入 http://localhost:8080, 先要找到虚拟机的 IP。

在虚拟机输入 ifconfig 查找 IP。一定要在虚拟机输入命令行,windows 下是没有 ifconfig 的,不要弄错地方了。所有操作都在虚拟机完成,讲了 3 遍了,希望你们都已经知道了。

比如我的虚拟机地址是:192.168.99.102, 接下来,我就可以通过http://http://192.168.99.102:8080 访问 jenkins 了。

图片

注意:jenkins 的一些配置安装过程比较慢,需要耐心等待加载完成。

配置好用户和密码以后,启动一个项目 demo, 构建生成 workspace 目录。

代码放到 workspace 里,这里的路径是在运行容器的时候指定的本机地址,一定要对上哦。

图片

剩下的步骤基本没什么区别了,看下构建后的结果:

在这里插入图片描述

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

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


http://www.ppmy.cn/embedded/104671.html

相关文章

Quartz.Net_侦听触发器

简述 触发器执行任务时存在数个阶段,利用侦听器可以在对应的阶段执行一些代码 如何侦听 1.实现ITriggerListener接口,并实现其函数,具体说明见代码注释 public class DeleteAfterCompleted : ITriggerListener {public string Name > …

如何判断请求是否为跨域请求?——详细教程

判断请求是否为跨域请求,主要取决于浏览器的同源策略。同源策略定义了两个 URL 是否“同源”的标准,即它们的协议、主机和端口号必须完全相同。如果这些属性中的任何一个不同,那么请求就被认为是跨域请求。 具体判断标准 两个 URL 满足以下…

tomcat 调优

一、Tomcat 调优的关键领域 1. **连接数和线程池配置** 2. **JVM 配置和 GC 调优** 3. **Tomcat 内存调优** 4. **文件和网络配置** 5. **Tomcat 缓存和压缩设置** 二、连接数和线程池配置 Tomcat 的连接数和线程池配置对服务器的并发处理能力有直接影响。默认情况下&#x…

栈和队列+泛型

栈 也是System.Collections下的数据结构类,存储的也是Object类型的对象。 Stack 名字new Stack(); Count:实际拥有的元素个数; 栈的释放顺序是先进后出(先进后出) 压栈——Push(object 对象)把这个对象添加到栈。…

解决线程中使用线程锁

问题:多线程操作同一个对象,利用锁保证数据操作的原子性 解决方案:使用线程锁 简要说明:线程锁本质上就是添加一个公共状态量,当线程拿到状态量后,则继续执行,否则就等待 扩展1:自…

随手记:小程序体积超出2M包大小如何优化

小程序的包体积限制是2M,超出包大小如何优化 先简单列出,最近比较忙,后续优化明细,有着急的先留言踢我 1.分包 2.图片放到服务器 3.大功能需求内嵌H5(但分享会收到影响) 4.代码压缩设置 5.删除多余代码

从0到DevOps(1)-初步了解DevOps和容器

DevOps从提出以来陆续成为行业普遍实践,目前是数字化生产普遍不可或缺的信息底座。本系列文章旨在系统性的阐述与认识DevOps, 了解企业实践里DevOps的实际面貌。 什么是DevOps? DevOps 是一套实践、工具和文化理念,为实现用户不断的软件功能和可用性要…

达梦数据库兼容Quartz定时框架

1、背景 近期项目中需要使用达梦数据库,现将mysql数据库切换为达梦数据库,其中兼容Quartz定时框架报错如下: 2、解决方案 2.1 起初配置完:达梦数据库驱动直接启动项目直接报错, 后面在yml中配置数据库表名前缀&…