Jenkins与Docker的自动化CI/CD实战

在互联网时代,对于每一家公司,软件开发和发布的重要性不言而喻,目前已经形成一套标准的流程,最重要的组成部分就是持续集成(CI)及持续部署、交付(CD)。本文基于Jenkins+Docker+Git实现一套CI自动化发布流程。

一、发布流程设计

Jenkins与Docker的自动化CI/CD实战

Jenkins与Docker的自动化CI/CD实战


工作流程:

开发人员提交代码到Git版本仓库;

Jenkins人工/定时触发项目构建;

Jenkins拉取代码、代码编码、打包镜像、推送到镜像仓库;

Jenkins在Docker主机创建容器并发布。

环境规划如下:

角色IP
Jenkins/Docker   192.168.0.217  
Docker   192.168.0.218  
Git/Registry   192.168.0.219  

操作系统:CentOS7.4

二、部署Git仓库 # yum install git -y

创建Git用户并设置密码 # useradd git # passwd git

创建仓库 # su - git # mkdir solo.git # cd solo.git # git --bare init

访问创建的这个仓库 # git clone git@192.168.0.212:/home/git/solo.git 三、准备Jenkins环境

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于代码编译、部署、测试等工作。 Jenkins也是一个跨平台的,大多数主流的平台都支持,而且安装很简单,我们这里以部署war包方式安装它。
官网下载地址:https://jenkins.io/download/
如图点击下载最后一个Generic Java package(war):

Jenkins与Docker的自动化CI/CD实战


在安装前需要具备Java环境,安装方式如下:

# tar zxf jdk-8u45-linux-x64.tar.gz # mv jdk-8u45-linux-x64 /usr/local/jdk1.8 # vi /etc/profile JAVA_HOME=/usr/local/jdk1.8 PATH=$PATH:$JAVA_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME PATH CLASSPATH # source /etc/profile

在192.168.0.217主机安装Jenkins,下载Tomcat二进制包将war包到webapps下即可:**

# wget # wget # tar zxf apache-tomcat-8.5.32.tar.gz # mv apache-tomcat-8.5.32 /usr/local/tomcat-jenkins # rm /usr/local/tomcat-jenkins/webapps/* -rf # unzip jenkins.war -d /usr/local/tomcat-jenkins/webapps/ROOT # cd /usr/local/tomcat-jenkins/bin/ # ./startup.sh # tail ../logs/catalina.out -f ... Jenkins initial setup is required. An admin user has been created and a password generated. Please use the following password to proceed to installation: a5f1f7c167fd4b8ab62f9497d32d97db This may also be found at: /root/.jenkins/secrets/initialAdminPassword ...

部署成功,访问Jenkins::8080

第一步:输入上面日志输出的密码:a5f1f7c167fd4b8ab62f9497d32d97db,或者从本机/root/.jenkins/secrets/initialAdminPassword文件获取,点击继续
第二步:点击“选择插件来安装”
第三步:保持默认,点击继续
第四步:创建管理员用户,保存并完成
第五步:设置Jenkins访问地址,保持默认,点击保存完成

安装完成,开始使用Jenkins:

Jenkins与Docker的自动化CI/CD实战

四、部署私有镜像仓库

Docker Hub作为Docker默认官方公共镜像;如果想自己搭建私有镜像仓库,官方也提供registry镜像,使得搭建私有仓库非常简单。
在192.168.0.219部署:

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

接下来测试registry可用性。
由于Docker CLI默认以HTTPS访问,而部署的registry并未提供HTTPS,因此,需要在pull镜像的Docker主机(192.168.0.217,192.168.0.218)添加HTTP可信任:

# vi /etc/docker/daemon.json {"insecure-registries":["192.168.0.219:5000"]} # service docker restart 五、安装Docker

在192.168.0.217/192.168.0.218/192.168.0.219主机安装Docker,如下:

安装依赖包 # yum install -y yum-utils device-mapper-persistent-data lvm2

添加Docker软件包源: # yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo

安装Docker CE # yum install docker-ce -y

配置加速器 # curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s

启动并开机启动 # systemctl start docker # systemctl enable docker 六、构建Tomcat基础镜像

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/31242462ace6eddff668a59cb6ac34ca.html