美文网首页 mq
gitlab+jenkins+docker 实现自动化部署

gitlab+jenkins+docker 实现自动化部署

作者: Mr_Dragonn | 来源:发表于2018-12-10 16:33 被阅读48次

    基本介绍

    1.Jenkins:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
    2.Docker:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

    说说我对于docker的理解:
    docker就像一个轻量级虚拟机一样 每一个docker容器都是一个封闭的小的沙盒环境,与物理机之间没有任何关联的
    docker的镜像就像一个ghost镜像一样,里边有搭建好的开发环境,安装起来比较方便.
    容器就相当于通过ghost镜像创建的虚拟机一样,每个容器之间没有关联,互不干扰

    gitlab+jenkins+docker

    网络结构图

    整体结构图.jpg

    流程介绍(以微信叫号项目为例)

    1.提交代码后 gitlab服务器会给Jenkins服务器发送消息(webhook方式)
    通过Webhook的相关设置,可以实现代码Push后,自动去触发jenkins上的构建动作,这样就不需要人工干预去执行发版操作了
    [参考链接](https://www.jianshu.com/p/2b2c204dcbe2)
    
    2.Jenkins服务收到消息后 去gitlab服务器上拉去代码
    根据代码中的Jenkinsfile 文件来进行相应的操作 
    jenkinsfile 可以通过stages 来设置操作流程 
    叫号项目中定义的流程:
    1.进入指定的docker容器 更新代码 打包
    2.将打包好的代码放到指定的目录下解压  删除压缩包
    3.运行成功后发送邮件通知开发者
    参考链接:https://blog.csdn.net/kikajack/article/details/79434552
    
    3.根据代码中的dockerFile来打包对应的docker镜像
    根据dockerfile 打包docker镜像 
    dockerfile 中会有docker打包所需要的基本镜像、开放的端口号、执行的命令
    
    4.根据docker镜像创建docker容器运行
    根据docker的镜像创建容器 如果有相同的容器名称,旧的容器就会置为none 每隔一段时间就会删除none的容器
    
    5.Nginx进行转发(通过Nginx实现访问项目的时候不加端口号)
    配置Nginx转发
    首先来解释一下为什么用Nginx转发: 如果不使用Nginx的情况下访问部署的镜像就必须加上端口号(例如   http://192.168.10.100:3009/) 
    在使用Nginx后可以实现url+路径的方式(例如:http://192.168.10.150/meeting/#/)
    

    相关文章

      网友评论

        本文标题:gitlab+jenkins+docker 实现自动化部署

        本文链接:https://www.haomeiwen.com/subject/bxgrhqtx.html