正式环境前端项目-CI-CD
JAVA项目
大概思路图
44华为云服务器jar包存放位置
/data/container/srv/lane-provider
启动之前要先删除原来的容器,还有镜像
然后执行脚本,运行
/data/container srv-start.sh
脚本内容
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
构建报错缺少这个依赖
最终解决方法
jenkins构建成功-jar包传输失败问题
1.安装版本 Jenkins2.263.1
下载地址 https://get.jenkins.io/war-stable/
2.构建时 jar包没有上传,也没有报错,尝试很多次改成如下配置终于成功了(原因是没有找到source files)
语法修改
最终没有解决,采用ansible方式传输
先测试一下
ansible huawei -m copy -a "src=/root/.jenkins/workspace/pipeline-lan/lane-provider/target/lane-provider.jar dest=/jar/"
语法生成器
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配置
正式环境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)])
}
}
}
}
测试成功
alse, useWorkspaceInPromotion: false, verbose: false)])
}
}
}
}
[外链图片转存中...(img-9tgBKCt8-1658478287737)]
### 测试成功
[外链图片转存中...(img-coG0OL0H-1658478287738)]
![image-20220722161654539](https://img-blog.csdnimg.cn/img_convert/b9c7c71443f935cf3c862c97357345f9.png)