如何基于Docker搭建jenkins集成开发环境?建议收藏

简介: 如何基于Docker搭建jenkins集成开发环境?建议收藏

今日主要与大家分享关于Docker持续集成开发环境的搭建过程。


持续集成是软件开发中一个非常重要的环节,我们都知道持续集成的这种方式,不仅仅是影响软件开发的效率,实际上还会对我们软件开发的流程产生一定的影响。


例如:我们所选择的构建的方式,那么你的应用程序的部署的方式,软件开发与测试需要不断的对应用进行持续构建,这些都会受我们持续集成的构建的方案所影响。

有些人可能会想,持续构建很熟悉基本上也就是基于jenkins,没错jenkins确实是目前持续集成中这种流程也比较常见的一种解决方案,不过我们今天并不是仅仅单纯的讲jenkins,而是想再引入另外一个比较新颖也比较火的概念,也就是docker。


对于热点概念比较熟悉的朋友对docker并不陌生,这几乎是近期最热点的一门技术之一。

那么docker不像jenkins,docker场景应用是非常广泛的。

例如:我们常用的微服务或者容器化部署,实际上都离不开docker或者说都离不开容器。


可能大家在平时的工作中或者学习中对docker也非常感兴趣,想要去应用,但是有些同学可能没有找到这种合适的入手点去试验它,没有找到一种合适的方式去应用它。


我们今天在这里主要与大家分享如何将Docker与持续集成结合起。

来讲讲基于Jenkins+Docker+GIT把这几项结合在一起的配置部署的一种方案,我们想搭建一套能利用jenkins一个传统,同时也是主流的集成构建工具,同时我们又能引入一个Docker轻量级容器部署的方案。

一方面:我们想把传统的持续集成的工具应用好。

另外一方面:我们也可以整合一些热点的技术融合到一起,从而达到提升工作效率的目的。

640.png

不管是docker还jenkins目前在很多的IT企业中应用都非常广泛,jenkins作为一款非常经典的集成发布集成构建的工具,它凭借着自身的这种特别强大的功能,还是得益于它良好的设计。

然后再结合众多的插件,使得jenkins在实际生产过程中几乎能够实现你在工程持续构建的多种内容,而docker目前也是非常火热,作为业内一个最火的容器解决方案之一,将两者结合起来会带来什么样效果呢?

这也是我们今天需要去探索和展现的一些重点,为什么想要将docker与jenkins结合起来,在我们设计的场景里,就是想利用jenkins这种强大的CI工具的特性,我们能够获得这种持续构建的便利,这也是jenkins作为传统的一种应用场景。

但是传统构建的应用场景一般跑在独立的服务器上或者运行在虚拟机里,相对来说还是比较笨重,尽管说我们记住jenkins这样强大的工具,我们最终也能够实现一键部署与自动化环境的搭建执行,但在资源方面的这个开销和管理维护这种复杂度还是会存在一些不如意,那么容器呢它比虚拟机也好或者服务器也好,要轻量得多占用资源又少,部署即快又方面,做事效率高。

如果我们把服务存放在容器中运行,然后我们通过jenkins来把这个工程部署到容器里面,这样我们的服务就能够实现轻量化,这就是我们基于docker来管理我们jenkins的资源然后基于jenkins来创建docker然后来管理这个docker容器。

640.png

环境搭建实现整体流程详解图如下:

640.png

流程详解过程分析:

首先,我们从开发开始将开发完成的代码提交到git服务器之后,版本管理工具我们使用GIT,可以在jenkins中进行工程的构建,通过调用我们的shell Script的方式,触发docker管理镜像和容器的相关操作,然后把我们的工程部署到docker容器中去,然后把这个docker容器作为一个镜像启动起来。


这样等部署完成之后开发与测试就可以通过浏览器等方式来直接访问我们的项目工程,在这整个流程中,除了docker这一部分之外,其它的流程都是一种传统的jenkins部署持续集成构建的一种传统流程,我们在部署与发布基本上都是在jenkins中来完成 。


Docker在这个过程中更多是给我们提供一种支撑,我们在jenkins中执行编译,编译完成之后的工程将代码打包发布到docker里面,然后在docker中运行我们的服务,这所有的过程都是基于jenkins强大的功能来实现的,这所有的流程操作都可以进行跟踪的。

640.png

在我们设计的这个场景里面,我们希望至少需要三类服务器。


首先,是需要提供一台Git服务的服务器,这里可以使用互联网上提供的github等相关版本管理工具服务。


其次,需要一台运行Jenkins服务的服务器(Tomcat)。


再次,一台或若干Docker宿主机报备器主要用来提供服务运行的环境,可以是一台或者多台,主要为用户提供服务运行的环境。


结束语:基于对Docker结合Jenkins的应用今天咱们就讲解到这里,有些同学在公司有接触或者应用过这些技术相对比较容易接受,有些同学可能仅仅只听过没有应用过。

关于Docker的一些基本概念与整理运作流程我们今天就讲到这里,只要大家认真努力阅读上文都能详细理解,如何任何问题欢迎留言。

相关文章
|
10天前
|
前端开发 jenkins 持续交付
新的centos7.9安装docker版本的jenkins2.436.1最新版本-前端项目发布(五)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-前端项目发布(五)
32 1
|
10天前
|
存储 运维 Kubernetes
Docker+Kubernetes/K8s+Jenkins视频资料【干货分享】
Docker+Kubernetes/K8s+Jenkins视频资料【干货分享】
Docker+Kubernetes/K8s+Jenkins视频资料【干货分享】
|
10天前
|
jenkins 网络安全 持续交付
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
39 3
|
10天前
|
IDE 测试技术 项目管理
集成开发环境(IDE)的使用:提升Visual Basic开发效率的工具和技巧
【4月更文挑战第27天】本文探讨了如何使用Visual Basic IDE提升开发效率,包括理解IDE组件、利用代码编辑器的智能功能、通过界面设计器设计GUI、使用调试和测试工具、有效管理项目与版本控制、掌握快捷键和宏、定制IDE以及利用学习资源。通过充分利用这些工具和技巧,开发者能更快地编写高质量代码,高效管理项目,从而提升整体开发效率。随着IDE的持续发展,开发者应不断学习新特性以适应进步。
|
8天前
|
jenkins 持续交付 数据安全/隐私保护
Docker 安装 Jenkins
Jenkins 是一个独立的开源自动化服务器,可用于自动化与构建、测试、交付或部署软件相关的各种任务。
41 1
|
9天前
|
Java 数据库连接 Spring
K8S+Docker理论与实践深度集成java面试jvm原理
K8S+Docker理论与实践深度集成java面试jvm原理
|
10天前
|
Java 开发工具 git
新的centos7.9安装docker版本的jenkins2.436.1最新版本-项目发布(三)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-项目发布(三)
21 4
|
10天前
|
缓存 关系型数据库 数据库
【Docker 专栏】Docker 与容器化数据库的集成与优化
【5月更文挑战第9天】本文探讨了Docker与容器化数据库集成的优势,如快速部署、环境一致性、资源隔离和可扩展性,并列举了常见容器化数据库(如MySQL、PostgreSQL和MongoDB)。讨论了集成方法、注意事项、优化策略,包括资源调整、缓存优化和监控告警。此外,强调了数据备份、恢复测试及性能评估的重要性。未来,随着技术发展,二者的集成将更紧密,为数据管理带来更多可能性。掌握此技术将应对数字化时代的机遇与挑战。
【Docker 专栏】Docker 与容器化数据库的集成与优化
|
10天前
|
存储 安全 开发者
【Docker 专栏】Docker 与云存储服务的集成
【5月更文挑战第9天】在数字化时代,Docker和云存储服务的结合为企业和开发者提供了强大工具。Docker的高效性、可移植性和隔离性,加上云存储的扩展性、高可靠性和高可用性,通过集成可以实现数据持久化、便捷部署和资源优化。常见的集成包括AWS S3、Azure Blob Storage和Google Cloud Storage。集成时需注意安全、性能和兼容性问题,未来集成将更加紧密和智能化,助力企业创造更大价值。
【Docker 专栏】Docker 与云存储服务的集成
|
10天前
|
存储 测试技术 持续交付
【Docker 专栏】Docker 与 CI/CD 的集成策略
【5月更文挑战第8天】本文探讨了Docker在CI/CD流程中的作用,强调了环境一致性、快速部署和资源隔离等优势。通过在构建、测试和部署阶段集成Docker,可以提升软件开发效率和质量。具体集成策略包括使用Dockerfile构建镜像、整合CI/CD工具如Jenkins和GitLab。集成带来的好处包括提高效率、增强可靠性、加速交付和简化管理。然而,也需应对镜像管理、网络配置和安全等问题。通过案例分析,证明了Docker与CI/CD集成的有效性和必要性。
【Docker 专栏】Docker 与 CI/CD 的集成策略