使用docker-compose + Jenkins pipeline流水线部署Spring boot项目

docker、docker-compose的安装请看这里https://blog.csdn.net/andyLyysh/article/details/126738190?spm=1001.2014.3001.5502

jenkins安装请看这里https://blog.csdn.net/andyLyysh/article/details/128585967?spm=1001.2014.3001.5502

1、创建pipeline任务

在这里插入图片描述

2、配置任务

2.1 配置git仓库地址拉取代码

在这里插入图片描述
在这里插入图片描述

2.2、使用maven构建项目

在pipeline script中引入maven工具,使用 tools 来引入需要的工具
在这里插入图片描述
图中的maven工具的名称maven3.8.6,必须要与Global Tool Configuration中配置安装的maven名称一致
在这里插入图片描述
关于jdk的建议,Jenkins容器默认使用的是openjdk,在我们开发中几乎都是使用orcale jdk,所以需要配置jdk,避免在打包中出现不必要的错误
在这里插入图片描述

2.4、配置ssh推送目标jar包到远程服务器

在这里插入图片描述

2.5、配置推送docker文件及docker执行命令

在这里插入图片描述
在这里插入图片描述

3、完整示例代码

pipeline {
    agent any
    
    tools {
        maven "maven3.8.6"
        jdk "java8"
    }
    
    stages {
        stage ("拉取代码") {
            steps {
                git branch: 'dev', credentialsId: 'e0939905-8a6b-445d-906d-fe469c2fcb8a', url: 'http://192.168.13.226:3000/zhush/topfus-social.git'
            }
        }
        
        stage ("构建项目") {
            steps {
                sh """
                    mvn clean package
                """
            }
        }
        
        stage ("推送social-admin") {
            steps {
                sshPublisher(publishers: [sshPublisherDesc(configName: 'localserver', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd ~/social
                pwd
                cp ./social-admin.jar /data/sh/social-admin-api/''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/social', remoteDirectorySDF: false, removePrefix: 'topfus-admin-api/target/', sourceFiles: '**/social-admin.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            }
        }
        
        stage ("推送Dockerfile") {
            steps {
                sshPublisher(publishers: [sshPublisherDesc(configName: 'localserver', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd ~/social
                cp ./Dockerfile /data/sh/social-admin-api/''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/social', remoteDirectorySDF: false, removePrefix: 'topfus-admin-api/', sourceFiles: './topfus-admin-api/Dockerfile')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            }
        }
        
        stage ("推送docker-compose.yaml") {
            steps {
                sshPublisher(publishers: [sshPublisherDesc(configName: 'localserver', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd ~/social
                cp ./docker-compose.yaml /data/sh/
                cd /data/sh/
                docker-compose up -d --build''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/social', remoteDirectorySDF: false, removePrefix: '', sourceFiles: './docker-compose.yaml')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            }
        }
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

珍朱(珠)奶茶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值