docker~jenkins~harbor自动远程部署

大家可以看我前面文章,里面有docker与jenkins入门到实战,今天我们直接使用harbor+docker+Jenkins远程部署了。
harbor是一个专门管理docker镜像的程序,跟gitlab管理文件应用类似啦,当然我们用harbor不仅仅是管理镜像,我们需要使用harbor配合docker+jenkins实现远程部署。
首先我们需要安装一个harbor,这边大家自行百度进行安装啦。安装好的页面,默认账号admin/Harbor12345:
在这里插入图片描述进入我们的harbor管理中创建我们的项目进行管理镜像:
在这里插入图片描述
我这边有两个镜像,我们来说一下自动部署打包的流程:
在这里插入图片描述
1:编写我们的jinkensfile文件,在脚本中我执行的是/sh/implement.sh位置的脚本,记得加sh文件的可执行权限:

pipeline
    {
        agent any

    stages {
  stage('正在拉取git代码~11') {
        			steps {
        				checkout([$class:'GitSCM', branches: [[name:
        				'*/master']],extensions: [],userRemoteConfigs: [[credentialsId:
        				'ba65aaec-8e0b-4695-b510-11d5857af4be', url:'http://192.168.10.7:8065/root/spring-boot.git']]])
        			}
        	}

     stage('编译构建2') {
                 steps {
                     sh label:'', script:'mvn clean package dockerfile:build'
                 }
             }
     stage('构建dock212') {
                 steps {
                     //给镜像打标签123
                     sh "docker tag hello-boot:latest 192.168.10.6:8066/test/hello-boot:latest"
                     //登陆
                     withCredentials([usernamePassword(credentialsId: '4563136a-fd34-4c43-b4dc-9480efca0b77', passwordVariable: 'password', usernameVariable: 'username')]) {
                     //登录
                     sh "docker login -u ${username} -p ${password} 192.168.10.6:8066"
                     //上传镜像
                      sh "docker push 192.168.10.6:8066/test/hello-boot:latest"
                     }
                     //删除本地镜像
                     sh "docker rmi -f hello-boot"
                     sh "docker rmi -f 192.168.10.6:8066/test/hello-boot:latest"

                     sshPublisher(publishers: [sshPublisherDesc(configName: '10.7service',
                     transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '/sh/implement.sh',
                     execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false,
                     patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '',
                     sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
                 }
     }
    }
}

sh脚本文件:

harbor_url=192.168.10.6:8066
harbor_project_name=test
project_name=hello-boot
tag=latest
port=8058
echo "1"
imageName=$harbor_url/$harbor_project_name/$project_name:$tag
echo "$imageName"
echo "2"
containerId=`docker ps -a | grep -w ${project_name}:${tag} | awk '{print $1}'` 
if [ "$containerId" != "" ] ; then
echo "3"
docker stop $containerId
echo "4"
docker rm $containerId
echo "5"
echo "成功删除容器" 
fi
echo "6"
imageId=`docker images | grep -w $project_name | awk '{print $3}'`
echo "7"
if [ "$imageId" != "" ] ; then
echo "8"
docker rmi -f $imageId
echo "9"
echo "成功删除镜像"
 fi

2:在执行远程sh文件时,jenkins需要安装插件:Publish Over SSH
3:拷贝公钥到远程服务器,在我们的192.168.10.6目录/root/.ssh/:
在这里插入图片描述
我们在该路径下执行ssh-copy-id 192.168.10.7,那么192.168.10.7目录下会有一个文件:
在这里插入图片描述
然后在jenkins 系统配置中配置:
在这里插入图片描述
测试:
在这里插入图片描述
我们来看看192.168.10.7服务器docker镜像情况:
在这里插入图片描述
浏览器访问:
在这里插入图片描述
简单的微服务自动部署成功,由于小博主家里服务器及个人电脑设备是在有点卡‘感叹生活不易呜呜’,所以先部署到这里啦。大家可以自己根据简单自动部署结合自己的部署经验去构建属于自己的微服务部署。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

戴~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值