Jenkins实现自作自定义镜像并推送Harbor并编写目标服务器准备脚本

Jenkins实现自作自定义镜像并推送Harbor并编写目标服务器准备脚本_第1张图片

Jerkin 制作自定义镜像推送到Harbor

Jenkins实现自作自定义镜像并推送Harbor并编写目标服务器准备脚本_第2张图片

docker build -t mytest:$tag .
docker login -u admin -p Harbor12345 178.119.30.133:80
docker tag mytest:$tag 178.119.30.133:80/repo/mytest:$tag
docker push 178.119.30.133:80/repo/mytest:$tag

Jenkins实现自作自定义镜像并推送Harbor并编写目标服务器准备脚本_第3张图片

编写部署脚本

部署项目需要通过Publish Over SSH插件,让目标服务器执行命令。为了方便一次性实现拉取镜像和启动的命令,推荐采用脚本文件的方式。

添加脚本文件到目标服务器,再通过Publish Over SSH插件让目标服务器执行脚本即可。

Jenkins实现自作自定义镜像并推送Harbor并编写目标服务器准备脚本_第4张图片

deploy.sh

harbor_addr=$1
harbor_repo=$2
project=$3
version=$4
port=$5

imageName=$harbor_addr/$harbor_repo/$project:$version

echo $imageName

containerId=`docker ps -a|grep $project|awk '{print $1}' `

echo  $containerId

if [ "containerId" != "" ];then
   docker stop $containerId
   docker rm $containerId
fi

tag=`docker images|grep $project| awk '{print $2}'`

echo $tag

if [[ "$tag" =~  "$version" ]] ; then
   docker rmi -f  $imageName
fi

docker login -u admin -p Harbor12345 $harbor_addr

docker pull $imageName

docker run -d -p $port:$port --name $project $imageName

echo "Success"

[root@178-119-30-133 ~]# ./deploy.sh 178.119.30.133:80 repo mytest v3.0.0 8081

Jenkins实现自作自定义镜像并推送Harbor并编写目标服务器准备脚本_第5张图片

你可能感兴趣的:(docker,jenkins,服务器,运维)