容器自动化部署--jenkins+gitlab+Harbor+maven实现容器自动化部署

继上篇文章中jenkins+gitlab+Harbor实现容器自动化部署后,现在加一个maven,实现jenkins先从gitlab(GitHub)上拉取代码,然后拉取代码后,在jenkins服务器上将代码打包为jar包,然后在生成docker镜像,上传镜像到私库,从远程机器上拉取docker镜像,运行docker镜像,这里比上一篇中多了一步打包的过程。

这就是为什么上篇帖文中需要安装的maven没有用到的原因。

参照前文安装完maven后,需要与开发人员将中央仓库(settings.xml、pom.xml)的地址统一,否则会出现打包失败的情况。

在完成maven的中央仓库统一后将excute shell进行简单修改如下:

#!bin/bash

# Jenkins机器:编译完成后,build生成一个新版本的镜像,push到远程docker仓库

# Variables

WORKSAPCE=/root/.jenkins/workspace/eladmin-system

DIR=/home/code

JAR_HOME=/home/code/me/zhengjie/eladmin-system/2.6

DOCKERFILE_HOME=/root/jenkins/eladmin/eladmin-system

HARBOR_IP=192.168.6.3

REPOSITORIES=jenkins/eladmin-system

HARBOR_USER=admin

HARBOR_USER_PASSWD=fymj@2021DK

HARBOR_USER_EMAIL=gaohuazheng@sc-model.cn

a=`ls $DIR|wc -l`

echo $a

if [ $a -gt 0 ]

then

rm -rf $DIR/*

fi

mvn clean install

# Copy project and making jar

cp -r  $WORKSAPCE $DIR

cd $DIR/eladmin-system

mvn clean install 

# Copy the newest jar to docker-file directory.

\cp -f ${JAR_HOME}/*jar ${DOCKERFILE_HOME}/

# Delete image early version.

sudo docker login -u ${HARBOR_USER} -p ${HARBOR_USER_PASSWD} ${HARBOR_IP} 

IMAGE_ID=`sudo docker images | grep ${REPOSITORIES} | awk '{print $3}'`

if [ -n "${IMAGE_ID}" ];then

	sudo docker rmi -f ${IMAGE_ID}
fi
 
# Build image.

cd ${DOCKERFILE_HOME}

TAG=`date +%Y%m%d`

sudo docker build -t ${HARBOR_IP}/$REPOSITORIES:${TAG} . &>/dev/null
 
# Push to the harbor registry.

sudo docker push ${HARBOR_IP}/$REPOSITORIES:${TAG} &>/dev/null

这里多了一步:

a=`ls $DIR|wc -l`

echo $a

if [ $a -gt 0 ]

then

rm -rf $DIR/*

fi

mvn clean install

# Copy project and making jar

cp -r  $WORKSAPCE $DIR

cd $DIR/eladmin-system

mvn clean install 

# Copy the newest jar to docker-file directory.

\cp -f ${JAR_HOME}/*jar ${DOCKERFILE_HOME}/

意思是查看构建项目复制的目录是否有文件,如果有则删除,删除完成后将项目打包为jar包,jar包打包完成后将jar包复制到dockerfile目录下在进行相应的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值