Jenkins将Harbor镜像拉取到目标服务器

Jenkins将Harbor镜像拉取到目标服务器

目标服务器准备脚本文件

  • 流程
    Jenkins将Harbor镜像拉取到目标服务器_第1张图片
    jenkins需要把 harbor地址、harbor仓库、镜像名、镜像版本、主机端口、容器端口告诉目标服务器,因此需要6个参数给脚本

1.创建shell脚本并授予可执行权限

touch deploy.sh 
chmod a+x deploy.sh 

2.编写脚本

#!/bin/bash
harbor_addr=$1
harbor_repo=$2
project=$3
version=$4
container_port=$5
host_port=$6

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 $container_port:$host_port --name $project $imageName

echo "SUCCESS"                           

运行脚本

 ./deploy.sh 192.168.85.139 npy lover_story v3.0.0 8088 8082

3.jenkins配置

参数化构建:
Jenkins将Harbor镜像拉取到目标服务器_第2张图片
构建后操作:
Jenkins将Harbor镜像拉取到目标服务器_第3张图片
当构建之后,就会执行目标服务器的脚本文件去下载部署镜像了。

会出现的错误

DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
            Install the buildx component to build images with BuildKit:
            https://docs.docker.com/go/buildx/

invalid argument "lover_story:origin/master" for "-t, --tag" flag: invalid reference format
See 'docker build --help'.
Build step 'Execute shell' marked build as failure
SSH: Current build result is [FAILURE], not going to run.
Finished: FAILURE

一定要把脚本文件移动到 /usr/bin目录下!

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