一、各个组件的功能描述:

Docker 是一个开源的应用容器引擎。

Jenkis 是一个开源自动化服务器。

(1).负责监控gitlab代码、gitlab中配置文件的变动;

(2).负责执行镜像文件的构建、上传与下载;

(3).通过Rancher插件系统构建stack/service;

GitLab: 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具。

(1).保存项目配置文件;

(2).nginx定制配置文件;

(3).Dockerfile文件;

Harbor:开源的docker镜像仓库管理系统,比较方便管理维护镜像。

(1)负责构建后镜像的存储

rancher:容器编排管理工具。

(1)通过API负责接受jenkins的调用,自动创建、更新stack/service;

(2)实现服务的扩容缩容

二、流程导图说明:

① 开发人员提交代码提交到gitlab

②gitlab钩子会触发jenkins执行下载对应项目的env、nginx配置文件、Dockerfile和最新版本的代码

③jenkins执行shell脚本:composer安装laravel插件和npm安装模块,编译生成js文件。完好的代码通过docker build Dockerfile 指令打包成镜像

④上传构建好的镜像push到harbor镜像仓库

⑤jenkins借助Rancher的插件通过API与rancher交互更新service达到更升级容器的目的(也就是更新代码版本),其中pull镜像的这一步会通过saltstack并行从harbor上下拉之前构建好的镜像到多个主机上

以上流程完整的实现了CI\CD,这里主要是jenkins部分是关键位置之一。

三、从零开始搭建

1.首先检查虚拟机的版本(centos7,内核3.10及以上)

 2.安装JDK1.8

3.确保yum 包更新到最新(截图就不发了...更新包比较多)

yum -y update(可能需要点时间去更新)

systemctl disable firewalld.service(永远关闭防火墙)

 以上内容最好安装在原始机器上面(专门准备一台虚拟机安装JDK插件,然后其他的安装通过克隆,然后在进行安装)

四、安装docker容器(对以上操作的集群克隆一台,需要MAC地址)

(1).卸载

旧版本:

yum remove docker docker-common docker-selinux docker-engine

(2).安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

yum install -y yum-utils device-mapper-persistent-data lvm2

(3).设置yum源

yum -y install yum-utils、

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

(4).查看可用的所有仓库中所有docker版本

yum list docker-ce --showduplicates | sort -r

(5).安装docker

sudo yum install -y docker-ce

(7).设置开机并加入开机自启动

systemctl start docker

systemctl enable docker

(8).查看docker的版本(检查是否安装成功,以及相关的版本)

          docker version(表明docker安装成功)

(9). 安装docker-compose

 五、安装gitlab(代码管理器)---使用docker进行安装

  (1).下载镜像文件

docker pull beginor/gitlab-ce:11.0.1-ce.0

(2).创建etc、log、data目录,便于日后升级

     mkdir -p /mnt/gitlab/etc

     mkdir -p /mnt/gitlab/log

     mkdir -p /mnt/gitlab/data

(3).运行gitlab容器

docker run \

    --detach \

    --publish 8443:443 \

    --publish 8090:80 \

    --name gitlab \

    --restart always \

    -v /mnt/gitlab/etc:/etc/gitlab \

    -v /mnt/gitlab/log:/var/log/gitlab \

    -v /mnt/gitlab/data:/var/opt/gitlab \

    beginor/gitlab-ce:11.0.1-ce.0 

。。。。。。。。时间关系未完待续........以上情况,亲自安装步骤并实现....

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作的更多相关文章

  1. 基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作(续)---Harbor的安装

    前期安装文档:https://www.cnblogs.com/lq-93/p/11828626.html Harbor的作用:     开发提交代码至gitlab容器中,Jenkins拉取代码构建镜像 ...

  2. 基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作(续)

    说明:前期的安装,请转向https://www.cnblogs.com/lq-93/p/11824039.html (4).查看gitlab镜像是否启动成功 docker inspect  容器id  ...

  3. 基于Docker 搭建 Jenkins

    ⒈下载镜像 要使用最新的LTS: docker pull jenkins/jenkins:lts 要使用最新的每周 docker pull jenkins/jenkins ⒉运行 docker run ...

  4. 基于docker搭建jenkins

    一.概述 Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎.Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件.Jenkins 支持各 ...

  5. Jenkins+GitLab+Sonarqube+Shell持续集成CI/CD

    1.部署GitLab 2.部署Jenkins 3.Sonar代码审计 4.参数化构建 5.git参数化构建

  6. 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现

    庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介      在第七篇文章<庐山真面目之七微服务架构Consul ...

  7. Docker搭建Jenkins+Maven/Gradle——代码自动化运维部署平台(二)

    一.简介 1.Jenkins 概述: Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins ...

  8. 基于Docker搭建大数据集群(六)Hive搭建

    基于Docker搭建大数据集群(六)Hive搭建 前言 之前搭建的都是1.x版本,这次搭建的是hive3.1.2版本的..还是有一点细节不一样的 Hive现在解析引擎可以选择spark,我是用spar ...

  9. 基于Docker搭建分布式消息队列Kafka

    本文基于Docker搭建一套单节点的Kafka消息队列,Kafka依赖Zookeeper为其管理集群信息,虽然本例不涉及集群,但是该有的组件都还是会有,典型的kafka分布式架构如下图所示.本例搭建的 ...

随机推荐

  1. 使用FastReport报表工具生成报表PDF文档

    在我们开发某个系统的时候,客户总会提出一些特定的报表需求,固定的报表格式符合他们的业务处理需要,也贴合他们的工作场景,因此我们尽可能做出符合他们实际需要的报表,这样我们的系统会得到更好的认同感.本篇随 ...

  2. git操作指令,以及常规git代码操作

    安装git后操作指令如下:可以查阅git安装使用操作指南详情git安装使用操作图示详情.note 线上可参考指南:http://www.bootcss.com/p/git-guide/   所有操作在 ...

  3. 2019关于phpstudy软件后门简单分析

    2019.9.20得知非官网的一些下载站中的phpstudy版本存在后门文件   说是官网下的就没有后门 20号出现的新闻 今天phpstudy官网21号又更新一波 不太好说这是什么操作哦 此地无银三 ...

  4. 经验分享:程序员如何快速定位问题(BUG)

    让我掉下眼泪的 不止内存泄漏 让我夜夜不眠的 不止你的需求 明天还要改多久 你攥着我的手 让我感到为难的 是善变的需求 发布总是在半夜 回滚是永远的愁 错误(Bug)随时的暴漏 困扰着我心头 作为程序 ...

  5. nginx::升级到最新nginx

    ubuntu16. 升级nginx到最新版本 wget http://nginx.org/keys/nginx_signing.key sudo apt-key add nginx_signing.k ...

  6. 第三方软件 pcanywhere提权

    pcanywhere 是一个远程管理软件 1.访问pcanywhere默认安装目录 访问 下载打开 利用破解工具直接 选择刚刚下载的软件 点破解 拿到用户密码后去百度下载客户端让后连接

  7. sql查询入门

    SQL语言是一门相对来说简单易学却又功能强大的语言,它能让你快速上手并很快就能写出比较复杂的查询语句.但是对于大多数开发者来说,使用SQL语句查询数据库的时候,如果没有一个抽象的过程和一个合理的步骤, ...

  8. ESP8266开发之旅 基础篇⑥ Ticker——ESP8266定时库

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  9. 玩转OneNET物联网平台之HTTP服务③ —— OneNet智能灯 HTTP版本

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  10. python小例子(三)

    1.提高Python运行速度的方法 (1)使用生成器,节约大量内存: (2)循环代码优化,避免过多重复代码的执行: (3)核心模块使用cpython,pypy等: (4)多进程,多线程,协程: (5) ...