前言

本文档将Jenkins更新到最新版本并迁移现有环境。顺便把它记录下来,和大家一起分享(这篇文章也适用于新开始的詹金斯的同学)。

持续集成原理

持续集成, 简称CI(continuous integration).

– CI作为敏捷开发重要的一步,其目的在于让产品快速迭代的同时,尽可能保持高质量.

– CI一种可以增加项目可见性,降低项目失败风险的开发实践。其每一次代码更新,都要通过自动化测试来检测代码和功能的正确性,只有通过自动测试的代码才能进行后续的交付和部署.

– CI 是团队成员间(产研测)更好地协调工作,更好的适应敏捷迭代开发,自动完成减少人工干预,保证每个时间点上团队成员提交的代码都能成功集成的,可以很好的用于对各种WEB、APP项目的打包.

Jenkins

[Jenkins](https://jenkins.io/index.html)是一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点。

附网上jenkins持续交付流程图

jenkins持续集成

持续集成,持续交付各个阶段所使用的一些典型工具的使用,以及在各个阶段中的相关团队的相关活动,以下图为典型的DevOps相关的活动

jenkins持续集成

Docker环境安装

参考:[docker1.13.x和com最新安装](http://www.toutiao.com/i6385354267686863361/)

jenkins和registry环境安装

首页在有联网条件下的docker环境中下载jenkins最新版本的docker镜像

下载jenkins镜像和registry镜像

“`

[root@registry-jenkins ~]# docker pull jenkin

2.32.1-alpine: Pulling from library/jenkins

b7f33cc0b48e: Pull complete

43a564ae36a3: Pull complete

b294f0e7874b: Downloading [=========================================> ] 41.12 MB MB

63c7a703a76a: Downloading [===========> ] 5.144 MB MB

1948a77ff7cc: Download complete

ceb220f57d17: Downloading [=========================> ] 35.11 MB MB

d0fbbc51c7ae: Waiting

6eee39234906: Waiting

6eee39234906: Pulling fs layer

[root@registry-jenkins ~]# docker pull registry

latest: Pulling from library/registry

b7f33cc0b48e: Pull complete

43a564ae36a3: Pull complete

b294f0e7874b: Downloading [=========================================> ] 41.12 MB MB

63c7a703a76a: Downloading [===========> ] 5.144 MB MB

1948a77ff7cc: Download complete

6eee39234906: Pulling fs layer

[root@registry-jenkins ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

jenkins 2.32.1-alpine 0c0c0a437b20 10 days ago 263.7 MB

registry latest 182810e6ba8c 10 days ago 37.6 MB

nginx latest abf312888d13 5 weeks ago 181.5 MB

mysql latest d9124e6c552f 6 weeks ago 383.4 MB

tomcat 8.0.39-jre8-alpine fbb6a04c1245 7 weeks ago 135.4 MB

java openjdk-8-jdk-alpine d991edd81416 7 weeks ago 145 MB

tomcat 8.5.5-jre8-alpine af393862df5a 4 months ago 135 MB

redis latest 4f5f397d4b7c 10 months ago 177.5 MB

toptomcat latest ce8c4307d74c 14 months ago 395.5 MB

topsecnginx latest bd299f0f0516 14 months ago 223.4 MB

“`

镜像加速器安装

==注意:==

一般由于docker hub是国外的网站,下载镜像非常慢,各位可以用国内的加载器,这里我推荐两种加载器:

1. daocloud加载器

“`

curl -sSL | sh -s

“`

该脚本可以将 –registry-mirror 加入到你的 Docker 配置文件 /etc/default/docker 中。适用于 Ubun、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,具体地址为 []()其他版本可能有细微不同。更多详情请[访问文档](http://guide.daocloud.io/dcs/daocloud-9153151.html)。

2. 阿里云加载器

阿里云加载器是你用阿里云账号登录后,在产品与服务中有一个加速器,点击加速器出现如下内容:

他会给没一个账号弄一个专属的加载器:我的是 专属加速器地址:

安装或升级Docker

您可以通过阿里云的镜像仓库下载: mirrors.aliyun.com/help/docker-engine

“`

curl -sSL | sh –

“`

配置Docker加速器

您可以使用如下的脚本将mirror的配置添加到docker daemon的启动参数中。

**系统要求 CentOS 7 以上,Docker 1.9 以上。**

“`

sudo cp -n /lib/systemd/system /etc/systemd/system

sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon –registry-mirror=|g" /etc/systemd/system

sudo systemctl daemon-reload

sudo service docker restart

“`

通过 docker-compose运行jenkins和regsitry

docker-compose文件内容:

“`bash

[root@registry-jenkins ~]# vim docker-com

#docker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins

jenkins:

image: jenkin

container_name: jenkins

ports:

– "8080:8080"

– "50000:50000"

volumes:

– /opt/data/jenkins_home:/var/jenkins_home

extra_hosts:

– "re;

user: root

restart: always

#docker run -d –restart=always -p 5000:5000 -v /opt/devdata/registry:/var/lib/registry –name devregistry registry

registry:

image: registry

container_name: devregistry

ports:

– "5000:5000"

volumes:

– /opt/devdata/registry:/var/lib/registry

restart: always

[root@registry-jenkins ~]# docker-compose up -d

[root@registry-jenkins devdata]# docker-compose ps

Name Command State Ports

——————————————————————————————————-

devregistry /etc/docker … Up 0.0.0.0:5000->5000/tcp

jenkins /bin/tini — /usr/local/bi … Up 0.0.0.0:50000->50000/tcp, 0.0.0.0:8080->8080/tcp

“`

迁移jenkins和registry的工作内容

如果是之前有运行了老版本的jenkins持续集成的内容,docker环境会有一个volumes的映射目录,只有从老的jenkins映射的目录,打包,拷贝到新的指定目录,然后在docker-com文件中在volumes中指定你拷贝的新的目录就行。后面的操作和上面一样。

registry和jenkns类似,都有一个挂载的目录存储着镜像内容,只有将该文件下的内容拷贝到新的环境目录,然后在docker-compose文件指定目录位置就行。如上 docker-com文件中的内容

参考:

[docker registry v2 认证服务器](http://www.dockerinfo.net/?s=registry)

[从零开始搭建Jenkins+Docker自动化集成环境](http://www.dockerinfo.net/2457.html)

1.《jenkins-registry安装与数据迁移(一)》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《jenkins-registry安装与数据迁移(一)》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.cxvn.com/gl/djyxgl/186239.html