docker的CI阶段

目录

        1、什么是CICD

2、CI流程

3、部署代码版本仓库

4、上传Java项目代码

5、部署Harbor镜像仓库

6、配置JDK和Maven环境

7、安装Jenkins

8、安装Docker

9、构建Tomcat基础镜像

10、流水线发布测试


 

1、什么是CICD

持续集成 ci: 代码合并、构建、部署测试都在一起,不断地执行这个过程,并对结果反馈,
持续部署 cd: 部署测试环境,预生产环境,生产环境。
持续交付 cd: 将最终产品发布到生产环境,给用户使用


2、CI流程

拉代码
编译
构建镜像
测试
部署

 

CICD可以获得:
及时发现问题
大幅度减少故障率
加快迭代速度
减少时间成本

3、部署代码版本仓库

4、上传Java项目代码

useradd git   #创建git用户
passwd git    #为git创建密码
[git@master ~]$ mkdir tomcat-java-demo.git   #创建库目录
cd tomcat-java-demo.git   #进入目录
git --bare init    #初始化存储库
git clone https://github.com/lizhenliang/tomcat-java-demo   #下载一个tomcat存储库
vim .git/config   #修改url
url = [email protected]:/home/git/tomcat-java-demo.git

git clone [email protected]:/home/git/tomcat-java-demo.git   #通过git下载tomcat这个库

5、部署Harbor镜像仓库

wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-offline-installer-v1.6.3.tgz

tar xf harbor-offline-installer-v1.6.3.tgz

yum -y install python-pip   #安装pip
pip install --upgrade pip   #升级pip
pip install docker-compose   # 安装docker-compose
pip install --upgrade docker-compose #升级docker-compose版本
docker-compose -v   #查看版本

cd harbor

vim harbor.cfg 

hostname 更换为主机地址

6、配置JDK和Maven环境

tar xf jdk-8u45-linux-x64.tar.gz 
mv jdk1.8.0_45 /usr/local/jdk

tar xf apache-maven-3.5.0-bin.tar.gz 
mv apache-maven-3.5.0 /usr/local/maven


mv apache-tomcat-8.0.46 /usr/local/jenkins_tomcat
 

JAVA_HOME=/usr/local/jdk
PATH=PATH:$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
export JAVA_HOME PATH
 

7、安装Jenkins

wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

mv jenkins.war ROOT.war

mv ROOT.war /usr/local/jenkins_tomcat/webapps

启动tomcat 

sh /usr/local/jenkins_tomcat/bin/startup.sh

8、安装Docker

安装Docker ce (官方链接:https://docs.docker.com/install/linux/docker-ce/centos/)

    卸载原来的Docker(如果以前没安装过,略过此步骤即可)
    $ sudo yum remove docker \
              docker-client \
              docker-client-latest \
              docker-common \
              docker-latest \
              docker-latest-logrotate \
              docker-logrotate \
              docker-selinux \
              docker-engine-selinux \
              docker-engine 

    devicemapper存储驱动依赖于yum-utils,device-mapper-persistent-dat    a,lvm2
    $ sudo yum install -y yum-utils \
        device-mapper-persistent-data \
        lvm2

    添加Docker官方yum源    
    $ sudo yum-config-manager \
        --add-repo \
        https://download.docker.com/linux/centos/docker-ce.repo

    安装Docker ce    
    $ sudo yum install docker-ce

vim /etc/docker/daemon.json  #创建加速源和 仓库地址
{"registry-mirrors": ["http://f1361db2.m.daocloud.io"],
"insecure-registries":["164.52.44.42"]
}

systemctl daemon-reload
systemctl restart docker

 

9、构建Tomcat基础镜像

docker pull tomcat

docker tag tomcat:latest 164.52.44.42/library/tomcat:v1

docker push 164.52.44.42/library/tomcat:v1

10、流水线发布测试

安装pipeline 、SCM to job 插件

docker的CI阶段_第1张图片

docker的CI阶段_第2张图片

docker的CI阶段_第3张图片

 

node  {   // 指定Slave标签
   // 拉取代码
   stage('Git Checkout') { 
        checkout([$class: 'GitSCM', branches: [[name: '${branch}']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '15e877e3-3b7e-49e5-aa69-60b0d3c9e59d', url: '[email protected]:/home/git/tomcat-java-demo.git']]])
   }
   // 代码编译
   stage('Maven Build') {
        sh '''
        export JAVA_HOME=/usr/local/jdk
        /usr/local/maven/bin/mvn clean package -Dmaven.test.skip=true
        '''
   }
   // 项目打包到镜像并推送到镜像仓库
   stage('Build and Push Image') {
        sh '''
        REPOSITORY=164.52.44.42/library/tomcat:${branch}
        echo '
        FROM 164.52.44.42/library/tomcat:v1
        COPY target/*.war /usr/local/tomcat/webapps/ROOT.war
        ' > Dockerfile
        docker build -t $REPOSITORY .
        docker login -u git -p Git12345 164.52.44.42
        docker push $REPOSITORY
        '''
   }
   // 部署到Docker主机
   stage('Deploy to Docker') {
        sh '''
        REPOSITORY=164.52.44.42/library/tomcat:${branch}
        docker rm -f java-demo |true
        docker image rm $REPOSITORY |true
        docker login -u git -p Git12345 164.52.44.42
        docker run -d --name java-demo -p 99:8080 $REPOSITORY
        '''
   }
}

 

你可能感兴趣的:(docker,jenkins,git,maven,CICD)