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

将此文章写给我最心爱的女孩
目标服务器准备脚本文件

  • 流程
    在这里插入图片描述
    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配置

参数化构建:
在这里插入图片描述
构建后操作:
在这里插入图片描述
当构建之后,就会执行目标服务器的脚本文件去下载部署镜像了。

会出现的错误

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目录下!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐