--昨夜西风凋碧树,独上高楼,望尽天涯路

上篇博文中介绍了,Jenkins自动化执行Maven build。下面我们进行自动化构建docker镜像以及推送镜像到私有仓库。

首先要安装好Docker和搭建一个私有仓库。

  • 编写Dockerfile

在pom文件同级目录下编写Dockerfile文件:

DevOps | CI CD | (四)

  • 编写脚本

编写Pipeline脚本:

#!groovy
pipeline{
    agent any
    environment {
       REPOSITORY = "ssh://[email protected]:2222/lucy/test.git" #gitlab仓库地址
       SCRIPT_PATH="/home/hht/scripts"                             #脚本文件地址
       MODULE="eureka-service"                                     #工程名称
       MODULE_PATH="/root/.jenkins/workspace/eureka-service"       #工程地址(Jenkins)
    }
    
    stages{
        stage('获取代码') {
            steps {
                echo "start fetch code from git:${REPOSITORY}"
                git "${REPOSITORY}"
            }
        }
        stage('编译 + 单元测试') {
            steps {
		        //sh 'cd /var/lib/jenkins/workspace/test/src/hht-cloud/hht-service'
                echo "start compile"
                withMaven(
                jdk: 'JDK1.8.0',
                maven: 'maven3'
                ) {
                //sh "mvn -U -pl service-eureka -am clean package"    
                 sh 'mvn -f /root/.jenkins/workspace/eureka-service/eureka-service/pom.xml -U -am clean install'
                }
            }
        }
        stage('构建镜像'){
			steps {
				echo "start build image"
				//echo "${SCRIPT_PATH} ${MODULE} ${PATH}"
				sh '${SCRIPT_PATH}/build-image.sh ${MODULE} ${MODULE_PATH}'                    #执行脚本
		}
    }
    }
}

编写在/home/hht/scripts目录下shell脚本 (传入两个参数:工程名和工程路径):

DevOps | CI CD | (四)

给Jenkins用户赋予执行脚本的权限:

cd /home/hht/scripts

chmod 755 build-image.sh

  • 构建

提交代码到GitLab:

DevOps | CI CD | (四)

GitLab出现Dockerfile:

DevOps | CI CD | (四)

打开Jenkins,Jenkins已经自动编译Maven脚本,构建镜像以及推送镜像到私有仓库:

DevOps | CI CD | (四)

DevOps | CI CD | (四)

 

相关文章: