企业级Docker+Jenkins+Gitlab自动化流水线构建

随着DevOps理念和敏捷理念的发展,我们都希望通过自动化技术,加快项目的迭代。尤其是当使用微服务系统架构之后,功能的叠加,对应服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化。因此,传统的人工部署已经心有余而力不足,所以合理的使用持续集成,持续部署可以极大的提高生产效率,提高团队整体效率不可或缺的一环。那么Jenkins可以帮你构建一个自动化的持续集成环境,你可以使用它来“自动化”编译、打包、分发部署你的应用,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github,码云可以直接集成.

        接下来我们来介绍下整个工作流程

  • 开发人员向自己的git仓库提交了代码
  • 接下来进入自动化构建过程,这边要说下,需要开发手动点击build按钮,当然你也可以利用webhooks来触发jenkins构建,进行全自动发布,但有些特殊情况下不建议这么做,比如说QA测试到一半,开发又向git仓库提交代码,结果触发jenkins自动构建了,容易影响到测试。
  • 首先会Jenkins会自动拉取最新的代码。
  • 成功拉取代码之后,会继续进入Maven编译阶段,如果这个阶段编译出错了,构建立马终止,所以使用流水行发布,可以快速的定位出问题的点。接下来,才会进入Docker镜像构建环节。
  • 构建镜像,是调用docker命令构建好服务镜像,并且推送到私有镜像仓库。
  • 最后,将自动下载镜像并且部署到Rancher,至于这个Rancher,它是一个容器管理平台.

学习视频教程
http://edu.51cto.com/course/14600.html

原文地址:http://blog.51cto.com/11243465/2156637

时间: 2024-10-09 07:59:07

企业级Docker+Jenkins+Gitlab自动化流水线构建的相关文章

jenkins+gitlab自动化编译部署方案探索及服务端编译webpack实战

一. 背景 之前我们的开发流程为在本地进行webpack打包编译,然后svn提交源代码和编译后的代码.同时每次提交前也会从svn更新源代码和编译后的代码.这样做有几个缺点: 1. svn 更新和提交编译后的代码造成大量冲突文件 2. 由于我们使用非覆盖式发布的命名方式,在经过小组多人多次优化提交测试之后,在整理需要发布的文件列表时,很容易遗漏一些文件 3. 在涉及到多人开发同一功能时容易产生代码被覆盖.人工安排发布优先级.手动注释他人未上线代码等情况 4. svn的分支开发繁琐不友好,加重工作量

jenkins +gitlab 自动化代码秒级上线

一,配置脚本 1 #!/bin/bash 2 #目标服务器IP地址 3 host=$1 4 #job名称 5 job_name=$2 6 #包名 7 name=web-$(date +%F)-$(($RANDOM+10000)) 8 #打包 9 cd /var/lib/jenkins/workspace/${job_name} && tar czf /opt/${name}.tar.gz ./* 10 #发送包到目标服务器 11 ssh ${host} "cd /var/www/

Jenkins pipeline自动化构建审批功能

Jenkins Pipeline是一套插件,支持将连续输送Pipeline实施和整合到Jenkins.Pipeline提供了一组可扩展的工具,用于通过PipelineDSL为代码创建简单到复杂的传送Pipeline. 对于单个项目来说,使用这样的Pipeline来构建能够满足绝大部分需求,但是这样做也有很多缺陷,包括: 多个项目的Pipeline打包脚本不能公用,导致一个项目写一份脚本,维护比较麻烦.Jenkins提供了一个更优雅的管理Pipeline脚本的方式,在配置项目Pipeline的时候

docker与jenkins的自动化CI/CD流水线实战

docker与jenkins的自动化CI/CD流水线实战 在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署.交付(CD).本文基于Jenkins+Docker+Git实现一套CI自动化发布流程. 高效的CI/CD环境可以获得: ? 及时发现问题 ? 大幅度减少故障率 ? 加快迭代速度 ? 减少时间成本 一.发布流程设计 总结:开发===>提交代码到Git/Svn===>推送到Jenkins====>通

Docker——Jenkins + Git + Registry构建自动化持续集成环境(CI/CD)

前言 在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署.交付(CD). 本文基于Jenkins+Docker+Git\Svn实现一套CI自动化发布流程,同时支持撤回. 一.发布流程设计 工作流程: 开发人员提交代码到Git或Svn版本仓库: Jenkins人工/定时触发项目构建: Jenkins拉取代码.代码编码.打包镜像.推送到镜像仓库: Jenkins在Docker主机创建容器并发布. 二.环境设计 1.

Jenkins + Github持续集成构建Docker容器,维基百科&人工自能(AI)模块

本文分两部分,第一部分是手动计划任务的方式构建Github上的Docker程序,第二部分是用Github webhook Trigger一个自动构建任务. Jenkins采用2.5版本Docker采用1.7.1代码托管使用的Github官网系统为IBM Bluemix提供的Cent6.7,服务器地址在美国南加州 1.1 创建一个Freestyle Project, let's say jenkins-docker 1.2 Set workplace to /var/lib/jenkins/job

Jenkins+Gitlab+Ansible自动化部署(六)

Pipeline Job实现Nginix+MySQL+PHP+Wordpress实现自动化部署交付(Jenkins+Gitlab+Ansible自动化部署(五)https://www.cnblogs.com/zd520pyx1314/p/10249094.html) 环境准备 编写ansible playbook脚本实现Wordpress远程部署 将wordpress源码与playbook部署脚本提交到gitlab仓库 编写pipeline job脚本实现Jenkins流水线持续交付流程 Jen

一步一步构建iOS持续集成:Jenkins+GitLab+蒲公英+FTP

什么是持续集成 持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误. 为什么使用持续集成 1.减少风险2.减少重复过程3.任何时间.任何地点生成可部署的软件4.增强项目的可见性 常用的持续集成工具 Jenkins CI Travis CI Hudson CI Circle CI 市面上的持续集成工具有很多,考虑到Jenkins的稳定性,

如何使用GitLab和Rancher构建CI/CD流水线 – Part 2

这是我们使用GitLab和Rancher构建CI/CD流水线系列教程的第二部分.第一部分的内容介绍了如何部署.配置和确保GitLab在Rancher的运行.这一部分中,我们将介绍如何使用GitLab CI Multi-Runner构建容器,以及如何使用GitLab容器registry配置项目.除此之外,我们还将涉及如何用GitLab CI建立容器并部署到Rancher上. 使用GitLab CI Multi-Runner构建容器 GitLab CI是用于持续集成和持续交付的强大工具.它需要和Ra