Jenkins+docker+Harbor自动化部署Jar包异常

生成镜像和推送镜像都正常,在远程控制生产服务器拉取代码并部署时有问题,好像是链接不到还是什么问题?请大哥们看看是什么问题,第一次学习,谢谢!

//git凭证ID
def git_auth="fcec1eef-995e-4ff8-a260-f9533aa46c80"
//git的url地址
def git_url="git@192.168.1.108:wcy/nlkj.git"
//定义镜像的版本号
def tag="latest"
//Harbor的url地址
def harbor_url="192.168.1.107:85"
//镜像库项目名称
def harbor_project="test01"
//Harbor登录凭证
def harbor_auth="b5c404f4-7fbb-45fc-91d3-f2cc5182515a"
//项目端口
def port="8082"
//名称
def project_name="nlkj"
node{
    stage('拉取代码') {
        checkout([$class: 'GitSCM', branches: [[name: "*/${branch}"]], extensions: [], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_url}"]]])
    }
    //stage('代码审查') {
    //     def scannerHome = tool 'Sonar-Scanner' //Sonar-Scanner为Global Tool Configuration中的名称
    //      withSonarQubeEnv('Sonarqube'){ //Sonarqube为Configure System中的名称
    //      sh "${scannerHome}/bin/sonar-scanner"
    //    }
    //}
    stage('编译打包-上传镜像') {
          sh "mvn clean package dockerfile:build"
          //定义镜像名称
          def imageName="nlkj:${tag}"
          //对镜像打上标签
          sh "docker tag ${imageName} ${harbor_url}/${harbor_project}/${imageName}"
          //把镜像推送到Harbor
          withCredentials([usernamePassword(credentialsId: "${harbor_auth}", passwordVariable: 'password', usernameVariable: 'username')]) {
               //登录Harbor
               sh "docker login -u ${username} -p ${password} ${harbor_url}"
               //镜像上传
               sh "docker push ${harbor_url}/${harbor_project}/${imageName}"
               sh "echo 镜像上传成功"
          }
          //删除本地镜像
          sh"docker rmi -f ${imageName}"
          sh"docker rmi -f ${harbor_url}/${harbor_project}/${imageName}"
          //部署应用
          sshPublisher(publishers: [
          sshPublisherDesc(configName: 'ProductionServer',
          transfers: [sshTransfer(cleanRemote: false, excludes: '',
          execCommand: "/opt/jenkins_shell/deploy.sh $harbor_url $harbor_project $project_name $tag $port",
          execTimeout: 120000,
           flatten: false,
           makeEmptyDirs: false,
           noDefaultExcludes: false,
           patternSeparator: '[, ]+',
           remoteDirectory: '',
           remoteDirectorySDF: false,
           removePrefix: '', sourceFiles: '')],
           usePromotionTimestamp: false,
           useWorkspaceInPromotion: false, verbose: false)])
    }
}
#!/bin/sh
#接收外部参数
harbor_url=$1
harbor_project=$2
project_name=$3
tag=$4
port=$5

imageName=$harbor_url/$harbor_project/$project_name:$tag
echo "$imageName"
#查询容器是否存在,存在则删除
containerId=`docker ps -a | grep -w ${project_name}:${tag} | awk '{print $1}'`
if [ "$containerId" != "" ] ; then
    #停掉容器
    docker stop $containerId
    #删除容器
    docker rm $containerId
    echo "成功删除容器"
fi
#查询镜像是否存在,存在则删除
imageId=`docker images | grep -w $project_name | awk '{print $3}'`
if [ "$imageId" != "" ] ; then
    #删除镜像
    docker rmi -f $imageId
    echo "成功删除镜像"
fi
# 登录Harbor私服
docker login -u itcast -p Itcast123 $harbor_url
# 下载镜像
docker pull $imageName
# 启动容器
docker run -di -p $port:$port $imageName
echo "容器启动成功"

改了不行的

这种脚本一般权限好像600,你设置的多少呢,只是建议测试下

  • 这个脚本:/opt/jenkins_shell/deploy.sh