Jenkins打包SpringCloud多模块多层级项目镜像,自动化部署

目录

1 项目结构 如下示意图

 2 构建需求,需要针对模块 进行分模块构建部署

        2.1 CICD  gitlab->jenkins->harbor->rancher

        2.2 jenkins 相关操作 :

              2.2.1  安装 gitlab插件 安装流水线相关插件;  这些插件  安装的时候会引导安装大部分; 缺少的 点进插件管理中心 , 进行安装就好了

2.2.2 创建项目

2.2.3 项目配置 (重点 简单版本 一般够用)

2.2.4  jenkins流水线脚本


1 项目结构 如下示意图

git 地址为整体结构 未拆分 : 

http://127.0.0.1:8888/gtilab/顶级父工程.git

 2 构建需求,需要针对模块 进行分模块构建部署

        2.1 CICD  gitlab->jenkins->harbor->rancher

                此篇主要怕关注jenkins 相关集成构建,重点不在于 gitlab,harbor,rancher等环境的搭建

                有空再补充吧,先搞个demo

        2.2 jenkins 相关操作 :

              2.2.1  安装 gitlab插件 安装流水线相关插件;  这些插件  安装的时候会引导安装大部分; 缺少的 点进插件管理中心 , 进行安装就好了

如图:

git

maven
 

 意:maven仓库地址此时为: cd $HOME/.m2/repository

2.2.2 创建项目

2.2.3 项目配置 (重点 简单版本 一般够用)

选择gitlab connection  具体配置 看第二张贴图

`

 GITLAB CONNECTION  配置在这 反正就像这样  缺啥补啥

2.2.4  jenkins流水线脚本

注:如果经常会有同版本号的依赖更新的话 就在构建脚本加一句 清空一下本地仓

   sh 'mvn dependency:purge-local-repository'

 完整脚本 不带上面这个,需要自取



def createVersion() {
    // 定义一个版本号作为当次构建的版本,输出结果 20230410175842_699
    return new Date().format('yyyyMMddHHmm') + "_${env.BUILD_ID}"
}
pipeline {
    //agent用于指定执行job的节点'any'为不做限制   shuquanliang/docker-product
    agent any
    tools {
        // Install the Maven version configured as "M3" and add it to the path.
        maven "maven"
        jdk "jdk_17"
    }
    environment {
       git_auth = '01b2****e78289'
       git_url = 'http://127.0.0.1:18888/cloud/P_A.git'  //顶级父项目  未拆分
       //定义镜像名称:版本  P_A_A_A 这个是需要打包成镜像的启动项目
       imageName = "P_A_A_A:latest"
       //镜像仓库地址
        harbor_url = '127.0.0.1:5000'
       //镜像仓库目录
       harbor_project = "P_A_A_A"
       //镜像仓库用户账号信息
       harbor_auth = "plvBdkEQ*****nOWTXG0"
       _version = createVersion()
    }
     stages {

        stage('pull git') {
            steps{
          //从git拉取代码
            checkout([$class: 'GitSCM', branches: [[name: "*master"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_url}"]]])		}
        }
        stage('maven build ') {
            steps{
              //使用mvn构建,
                 //使用mvn构建,mvn clean install -pl <module-name>  P_A_A_B  这个是 业务侧代码 需要 同步更新部署 
              sh 'mvn clean install -pl P_A_A/P_A_A_B -Dmaven.test.skip=true  -Dcheckstyle.skip=true -Dpmd.skip=true -Dfindbugs.skip=true'
              sh 'mvn clean package -pl P_A_A/P_A_A_A -Dmaven.test.skip=true  -Dcheckstyle.skip=true -Dpmd.skip=true -Dfindbugs.skip=true'
               sh 'pwd'
               sh 'docker build --no-cache -f ./P_A_A/P_A_A_A/Dockerfile -t ${imageName}  ./'
               sh 'echo  打包成功 '
               sh 'echo  ${_version} '
            }
        }
        stage('docker build') {
            steps{
                script{
                  sh '''
                      docker tag ${imageName}  ${harbor_url}/${harbor_project}/P_A_A_A:${_version}
                      docker push ${harbor_url}/${harbor_project}/P_A_A_A:${_version}
                      docker rmi -f `docker images |grep ${harbor_url}/${harbor_project}/P_A_A_A |awk  '{print $3}'|sort
                      -n  | uniq`
                  '''
                }
            }
        }
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值