容器自动化部署--jenkins+gitlab+Harbor+maven实现容器自动化部署
harbor
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
项目地址:https://gitcode.com/gh_mirrors/ha/harbor
免费下载资源
·
继上篇文章中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目录下在进行相应的操作。
GitHub 加速计划 / ha / harbor
23.24 K
4.68 K
下载
Harbor 是一个开源的容器镜像仓库,用于存储和管理 Docker 镜像和其他容器镜像。 * 容器镜像仓库、存储和管理 Docker 镜像和其他容器镜像 * 有什么特点:支持多种镜像格式、易于使用、安全性和访问控制
最近提交(Master分支:2 个月前 )
9e55afbb
pull image from registry.goharbor.io instead of dockerhub
Update testcase to support Docker Image Can Be Pulled With Credential
Change gitlab project name when user changed.
Update permissions count and permission count total
Change webhook_endpoint_ui
Signed-off-by: stonezdj <stone.zhang@broadcom.com>
Co-authored-by: Wang Yan <wangyan@vmware.com> 8 天前
3dbfd422
Signed-off-by: wang yan <wangyan@vmware.com> 8 天前
更多推荐
已为社区贡献2条内容
所有评论(0)