如题目所讲,这篇的主要目的就是在目标服务器配置sh脚本。目的:
1. 停止当前正在跑的容器。
2. 删除容器,
3, 删除镜像
4.拉取指定镜像
5.运行镜像。
1/2代码:
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
3代码:
tag=`docker images |grep ${project} |awk '{print $2}'`
echo $tag
docker rmi $imageName
4 代码:
docker login -u admin -p Harbor12345 192.168.0.51:80
docker pull $imageName
5代码:
docker run -p 5000:80 --env ASPNETCORE_ENVIRONMENT=Development -d $imageName
然后我们上面的sh 文件放到宿主机器的path 目录里面:
$PATH 得到path
mv 移动sh文件到path
Jenkins里面,我们在构建完成后,执行shh command
👌
目前我们完成了一个.net5.0 项目上传gitlab,通过jenkins 我们拉去指定tag到编译服务器,dockfile 我们完成build 一个镜像,然后推送到harbor 服务器,目标服务器通过。sh 文件拉取镜像,运行程序。