--昨夜西风凋碧树,独上高楼,望尽天涯路
上篇博文中介绍了,Jenkins自动化执行Maven build。下面我们进行自动化构建docker镜像以及推送镜像到私有仓库。
首先要安装好Docker和搭建一个私有仓库。
-
编写Dockerfile
在pom文件同级目录下编写Dockerfile文件:
-
编写脚本
编写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脚本 (传入两个参数:工程名和工程路径):
给Jenkins用户赋予执行脚本的权限:
cd /home/hht/scripts
chmod 755 build-image.sh
-
构建
提交代码到GitLab:
GitLab出现Dockerfile:
打开Jenkins,Jenkins已经自动编译Maven脚本,构建镜像以及推送镜像到私有仓库: