正式环境Java项目-CI-CD

正式环境前端项目-CI-CD

JAVA项目

image-20220722162119701

大概思路图

image-20220719163017341

44华为云服务器jar包存放位置
/data/container/srv/lane-provider

image-20220719154152978

启动之前要先删除原来的容器,还有镜像

image-20220719155324898

然后执行脚本,运行
/data/container     srv-start.sh

image-20220719160508965

脚本内容
cat cat srv-start.sh 
cat: cat: No such file or directory
#!/bin/sh
set -e
dir=$(dirname $(readlink -f $0))
dir="$dir/srv"

cd $dir
echo "--------start service-------"
docker-compose up -d

配置jenkins-pipeline

构建报错缺少这个依赖

image-20220722162215965

最终解决方法

image-20220721173538690

jenkins构建成功-jar包传输失败问题

image-20220722162310073

1.安装版本 Jenkins2.263.1
下载地址 https://get.jenkins.io/war-stable/
2.构建时 jar包没有上传,也没有报错,尝试很多次改成如下配置终于成功了(原因是没有找到source files)

image-20220722100532296

image-20220722100545795

语法修改

image-20220722103726411

最终没有解决,采用ansible方式传输

先测试一下

ansible huawei -m copy -a  "src=/root/.jenkins/workspace/pipeline-lan/lane-provider/target/lane-provider.jar   dest=/jar/"

image-20220722110650648

语法生成器

image-20220722110855643

pipeline { 
   agent any 
   stages { 
      stage('拉取代码') { 
          steps { 
             checkout([$class: 'GitSCM', branches: [[name: '${tag}']], extensions: [], userRemoteConfigs: [[credentialsId: '100b584e-7f67-466f-8b93-9b9038e117a0', url: 'https://xxxx']]])
            } 
        }
    //   stage('切换分支') {
    //         steps {
    //             echo '开始拉release-test分支.....'
    //             git branch: "release-test",credentialsId: '100b584e-7f67-466f-8b93-9b9038e117a0', url: 'https://xxx'
    //         }
	// 	}
      stage('编译打包') { 
             steps { 
              sh 'mvn  clean package install -Dmaven.test.skip=true -DarchetypeCatalog=local'
            } 
        } 
      stage('发送jar包') { 
             steps { 
             sh 'ansible huawei -m copy -a  "src=/root/.jenkins/workspace/pipeline-lan/lane-provider/target/lane-provider.jar   dest=/jar/"'
            } 
        } 
//       stage('启动脚本') { 
//              steps { 
//              sshPublisher(publishers: [sshPublisherDesc(configName: 'xxx', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''cd /pipeline-pond
// source /etc/profile
// bash up.sh

// ''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '', usePty: true)], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
//             } 
//         }                    
   }
}

44华为云服务器,停止容器删除镜像

首先备份-移动原先jar包并改名称


#!/bin/sh
cd  /back/lane-provider/
dateTime=`date +%Y-%m-%d`


#对指定的目录以及产生的日志文件进行备份
mv   lane-provider.jar    ${dateTime}_lane-provider.jar.bak
停止容器脚本
#!/bin/bash
docker stop  srv-lane-provider-1
docker rm  srv-lane-provider-1
docker rmi srv_lane-provider
启动容器脚本
#!/bin/sh
set -e
dir=$(dirname $(readlink -f $0))
dir="$dir/srv"

cd $dir
echo "--------start service-------"
docker-compose up -d
完整的jenkins配置

image-20220722160856874


正式环境JAVA项目  lan---xr分支
pipeline { 
   agent any 
   stages { 
      stage('拉取代码') { 
          steps { 
             checkout([$class: 'GitSCM', branches: [[name: '${tag}']], extensions: [], userRemoteConfigs: [[credentialsId: '100b584e-7f67-466f-8b93-9b9038e117a0', url: 'https://xxxx']]])
            } 
        }
    //   stage('切换分支') {
    //         steps {
    //             echo '开始拉release-test分支.....'
    //             git branch: "release-test",credentialsId: '100b584e-7f67-466f-8b93-9b9038e117a0', url: 'https://xxx'
    //         }
	// 	}
      stage('编译打包') { 
             steps { 
              sh 'mvn clean compile package  install -Dmaven.test.skip=true -D profiles.active=stage'
            } 
        } 
      stage('发送jar包') { 
             steps { 
             sh 'ansible huawei -m copy -a  "src=/root/.jenkins/workspace/pipeline-lan/lane-provider/target/lane-provider.jar   dest=/jar/"'
            } 
        } 
      stage('执行脚本启动容器') { 
             steps { 
             sshPublisher(publishers: [sshPublisherDesc(configName: 'xxxxx', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''source /etc/profile
            bash /data/container/srv/lane-provider/docker.sh
            bash /data/container/srv/lane-provider/lan_back.sh
            mv /jar/lane-provider.jar  /data/container/srv/lane-provider/
            bash  /data/container/srv-start.sh''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            } 
        }                    
   }
}

image-20220722161200096

测试成功

image-20220722161634767

alse, useWorkspaceInPromotion: false, verbose: false)])
}
}
}
}


[外链图片转存中...(img-9tgBKCt8-1658478287737)]

### 测试成功

[外链图片转存中...(img-coG0OL0H-1658478287738)]

![image-20220722161654539](https://img-blog.csdnimg.cn/img_convert/b9c7c71443f935cf3c862c97357345f9.png)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值