13 changed files with 554 additions and 0 deletions
@ -0,0 +1,31 @@ |
|||||
|
#! /bin/sh |
||||
|
#镜像名称 |
||||
|
image_name=$1 |
||||
|
#标签 |
||||
|
image_tag=$2 |
||||
|
#镜像仓库地址 |
||||
|
registry_url=$3 |
||||
|
#备份tag |
||||
|
image_bak_tag=$4 |
||||
|
|
||||
|
#带仓库地址镜像名称 |
||||
|
image_full_name=$registry_url/$image_name |
||||
|
|
||||
|
colunm3='$3' |
||||
|
|
||||
|
# 获取当前正在运行的镜像 |
||||
|
echo "docker images | grep -w $image_full_name | awk '{print $colunm3}'" |
||||
|
image_check_command=`docker images | grep -w $image_full_name | awk '{print $3}'` |
||||
|
if [ "$image_check_command" != "" ] ; then |
||||
|
# 将运行的镜像,重新修改tag命名为备份tag |
||||
|
echo "docker tag ${image_full_name}:${image_tag} ${image_full_name}:${image_bak_tag}" |
||||
|
docker tag ${image_full_name}:${image_tag} ${image_full_name}:${image_bak_tag} |
||||
|
# 将备份的镜像发送到镜像仓库,备份起来 |
||||
|
echo "docker push ${image_full_name}:${image_bak_tag}" |
||||
|
docker push ${image_full_name}:${image_bak_tag} |
||||
|
#将本地刚重命名的镜像删除 |
||||
|
echo "docker rmi ${registry_url}/${image_name}:$image_bak_tag" |
||||
|
docker rmi ${registry_url}/${image_name}:$image_bak_tag |
||||
|
fi |
||||
|
|
||||
|
|
||||
@ -0,0 +1,29 @@ |
|||||
|
#! /bin/sh |
||||
|
#镜像名称 |
||||
|
image_name=$1 |
||||
|
#标签 |
||||
|
image_tag=$2 |
||||
|
#镜像仓库地址 |
||||
|
registry_url=$3 |
||||
|
#备份tag |
||||
|
image_bak_tag=$4 |
||||
|
|
||||
|
#带仓库地址镜像名称 |
||||
|
image_full_name=$registry_url/$image_name |
||||
|
|
||||
|
colunm3='$3' |
||||
|
|
||||
|
# 获取当前正在运行的镜像 |
||||
|
echo "docker images | grep -w $image_full_name | awk '{print $colunm3}'" |
||||
|
image_check_command=`docker images | grep -w $image_full_name | awk '{print $3}'` |
||||
|
echo "image_check_command-----$image_check_command" |
||||
|
if [ "$image_check_command" != "" ] ; then |
||||
|
# 将运行的镜像,重新修改tag命名为备份tag |
||||
|
echo "docker tag ${image_full_name}:${image_tag} ${image_full_name}:${image_bak_tag}" |
||||
|
docker tag ${image_full_name}:${image_tag} ${image_full_name}:${image_bak_tag} |
||||
|
#将本地刚重命名的镜像删除 |
||||
|
echo "docker rmi ${registry_url}/${image_name}:$image_bak" |
||||
|
docker rmi ${registry_url}/${image_name}:$image_bak |
||||
|
fi |
||||
|
|
||||
|
|
||||
@ -0,0 +1,28 @@ |
|||||
|
#! /bin/sh |
||||
|
#镜像名称 |
||||
|
imageName=$1 |
||||
|
tag=$2 |
||||
|
|
||||
|
#容器字符串 |
||||
|
containerStr=`docker ps -a | grep -w ${imageName}:${tag} | awk '{print $1}'` |
||||
|
imageStr=`docker images | grep -w $imageName | awk '{print $3}'` |
||||
|
|
||||
|
if [ "$imageStr" != "" ] ; then |
||||
|
if [ "$containerStr" != "" ] ; then |
||||
|
#停掉容器 |
||||
|
docker stop `docker ps -a | grep -w ${imageName}:${tag} | awk '{print $1}'` |
||||
|
|
||||
|
#删除容器 |
||||
|
docker rm -f `docker ps -a | grep -w ${imageName}:${tag} | awk '{print $1}'` |
||||
|
|
||||
|
#删除镜像 |
||||
|
docker rmi --force ${imageName}:${tag} |
||||
|
|
||||
|
echo "停止容器、删除镜像${imageName}:${tag}成功" |
||||
|
else |
||||
|
#删除镜像 |
||||
|
docker rmi --force ${imageName}:${tag} |
||||
|
echo "删除镜像${imageName}:${tag}成功" |
||||
|
fi |
||||
|
fi |
||||
|
|
||||
@ -0,0 +1,47 @@ |
|||||
|
#! /bin/sh |
||||
|
group_id=$1 |
||||
|
image_name=$1/$2 |
||||
|
module_name=$2 |
||||
|
image_port=$3 |
||||
|
registry_url=$4 |
||||
|
eureka_url=$5 |
||||
|
image_tag=latest |
||||
|
host_port=$image_port |
||||
|
|
||||
|
# 截取到服务名称,如fastwave/fastwave-service-admin,载取后变为fastwave-service-admin |
||||
|
service_withprefix_name=$1 |
||||
|
service_name_array=(${service_withprefix_name//\// }) |
||||
|
service_name=${service_name_array[1]} |
||||
|
|
||||
|
#向eureka发送指令,让服务停止,即不再接收新的请求,这样终止服务将更柔性化 |
||||
|
nohup sh /data/jenkins_shell/disable_service.sh ${service_name} ${image_port} ${eureka_url} |
||||
|
|
||||
|
# 休眠一段时间,建议设置超过90秒以上,演示可以设置为30秒 |
||||
|
# sleep 2m |
||||
|
sleep 30s |
||||
|
|
||||
|
# 备份镜像到镜像仓库 |
||||
|
echo "备份镜像到镜像仓库" |
||||
|
#/data/jenkins_shell/backup_image.sh $image_name $image_tag $registry_url |
||||
|
|
||||
|
#两个可以不用停止WEB服务就可以清空nohup.out的命令。 |
||||
|
#第一种:cp /dev/null nohup.out |
||||
|
#第二种:cat /dev/null > nohup.out |
||||
|
cp /dev/null nohup.out |
||||
|
#sleep 2m |
||||
|
#停掉容器、删除容器、删除镜像 |
||||
|
echo "停掉容器、删除容器、删除镜像 /data/jenkins_shell/delete_image.sh $image_name $image_tag" |
||||
|
/data/jenkins_shell/delete_image.sh $image_name $image_tag |
||||
|
#pull镜像 |
||||
|
#echo "docker pull $image_name:$image_tag" |
||||
|
docker pull localhost:5001/${image_name} |
||||
|
|
||||
|
# 将运行的镜像,重新修改tag命名为server |
||||
|
docker tag localhost:5001/${image_name}:${image_tag} ${image_name}:${image_tag} |
||||
|
#将本地刚重命名的镜像删除 |
||||
|
echo "docker rmi localhost:5001/${image_name}:${image_tag}" |
||||
|
docker rmi localhost:5001/${image_name}:${image_tag} |
||||
|
|
||||
|
#运行镜像 |
||||
|
echo "运行镜像 docker run --restart=always --name ${module_name} -d -t ${image_name}:$image_tag" |
||||
|
docker run --restart=always --name ${module_name} -d --network=host -t ${image_name}:$image_tag |
||||
@ -0,0 +1,63 @@ |
|||||
|
#! /bin/sh |
||||
|
image_name=$1 |
||||
|
image_port=$2 |
||||
|
registry_url=$3 |
||||
|
eureka_url=$4 |
||||
|
profile_server=$5 |
||||
|
profile=$6 #--spring.profiles.active=xxxx |
||||
|
host_port=$2 |
||||
|
image_tag=latest |
||||
|
|
||||
|
echo "image_name:${image_name}" |
||||
|
echo "image_port:${image_port}" |
||||
|
echo "image_tag:${image_tag}" |
||||
|
echo "registry_url:${registry_url}" |
||||
|
echo "eureka_url:${eureka_url}" |
||||
|
echo "profile_server:${profile_server}" |
||||
|
echo "profile:${profile}" |
||||
|
|
||||
|
# 截取到服务名称,如fastwave/fastwave-service-admin,载取后变为fastwave-service-admin |
||||
|
echo "(1)截取到服务名称:$1" |
||||
|
service_withprefix_name=$1 |
||||
|
service_name_array=(${service_withprefix_name//\// }) |
||||
|
service_name=${service_name_array[1]} |
||||
|
|
||||
|
#向eureka发送指令,让服务停止,即不再接收新的请求,这样终止服务将更柔性化 |
||||
|
echo "(2) nohup sh /data/jenkins_shell/disable_service.sh ${service_name} ${image_port} ${eureka_url}" |
||||
|
nohup sh /data/jenkins_shell/disable_service.sh ${service_name} ${image_port} ${eureka_url} |
||||
|
|
||||
|
# 休眠一段时间,建议设置超过90秒以上,演示可以设置为30秒 |
||||
|
# sleep 2m |
||||
|
sleep 30s |
||||
|
|
||||
|
# 备份镜像到镜像仓库 |
||||
|
# echo "(3)备份镜像到镜像仓库" |
||||
|
#/data/jenkins_shell/backup_image_eureka.sh $image_name $image_tag $registry_url $profile_server |
||||
|
|
||||
|
|
||||
|
#两个可以不用停止WEB服务就可以清空nohup.out的命令。 |
||||
|
#第一种:cp /dev/null nohup.out |
||||
|
#第二种:cat /dev/null > nohup.out |
||||
|
cp /dev/null nohup.out |
||||
|
#sleep 2m |
||||
|
#停掉容器、删除容器、删除镜像 |
||||
|
echo "(4) 停掉容器、删除容器、删除镜像" |
||||
|
/data/jenkins_shell/delete_image.sh $image_name $image_tag |
||||
|
|
||||
|
#pull镜像 如果是两个虚拟机,则从要部署的机器195拉取136,这里是阿里云,无法拉取本地的镜像,所有这里注释掉 |
||||
|
#echo "(5) pull镜像" |
||||
|
#echo "docker pull $image_name:$image_tag" |
||||
|
docker pull localhost:5001/${image_name} |
||||
|
|
||||
|
# 将运行的镜像,重新修改tag命名为server |
||||
|
docker tag localhost:5001/${image_name}:${image_tag} ${image_name}:${image_tag} |
||||
|
#将本地刚重命名的镜像删除 |
||||
|
echo "docker rmi localhost:5001/${image_name}:${image_tag}" |
||||
|
docker rmi localhost:5001/${image_name}:${image_tag} |
||||
|
|
||||
|
#运行镜像 |
||||
|
echo "(6) 运行镜像 " |
||||
|
echo "docker run --restart=always --name renren-register -d --network=host -t ${image_name}:$image_tag ${profile}" |
||||
|
#docker run --restart=always --name renren-register -d --network=host -t ${image_name}:$image_tag ${profile} |
||||
|
docker run --restart=always --name renren-register -d --network=host -t ${image_name}:$image_tag ${profile} |
||||
|
|
||||
@ -0,0 +1,13 @@ |
|||||
|
#!/bin/sh |
||||
|
image_name=$1 |
||||
|
host_port=$2 |
||||
|
eureka_url=$3 |
||||
|
|
||||
|
# 获取本地IP地址,以centos7以上版本为参考(其它版本命令需要作调整) |
||||
|
# ip=`ifconfig eth0|grep broadcast |awk '{print $2}'` |
||||
|
ip=`ip a | grep inet | grep -v inet6 | grep -v 127 | sed 's/^[ \t]*//g' | cut -d ' ' -f2 |cut -d '/' -f1 | awk 'NR==1'` |
||||
|
|
||||
|
# 这里假定本机有eurake(如不存在或集群需多次尝试) |
||||
|
# 示例:http://10.101.43.197:8761/eureka/apps/fastwave-service-admin/fastwave-service-admin:10.101.43.197:8764/status?value=OUT_OF_SERVICE |
||||
|
echo "curl -X PUT -i http://${eureka_url}/eureka/apps/${image_name}/${ip}:${image_name}:${host_port}/status?value=OUT_OF_SERVICE" |
||||
|
curl -X PUT -i http://${eureka_url}/eureka/apps/${image_name}/${ip}:${image_name}:${host_port}/status?value=OUT_OF_SERVICE |
||||
@ -0,0 +1,3 @@ |
|||||
|
docker stop $(docker ps -a -q) |
||||
|
docker rm $(docker ps -a -q) |
||||
|
docker rmi $(docker images) |
||||
@ -0,0 +1,26 @@ |
|||||
|
#! /bin/sh |
||||
|
registry_url=$5 |
||||
|
image_name=$1 |
||||
|
image_tag=$2 |
||||
|
image_port=$3 |
||||
|
host_port=$4 |
||||
|
eureka_url=$6 |
||||
|
image_bak_tag=$7 |
||||
|
image_full_name=$registry_url/$image_name |
||||
|
|
||||
|
# 截取到服务名称,如fastwave/fastwave-service-admin,载取后变为fastwave-service-admin |
||||
|
service_withprefix_name=$1 |
||||
|
service_name_array=(${service_withprefix_name//\// }) |
||||
|
service_name=${service_name_array[1]} |
||||
|
|
||||
|
#停掉容器、删除容器、删除镜像 |
||||
|
echo "停掉容器、删除容器、删除镜像" |
||||
|
/data/jenkins_shell/delete_image.sh $image_full_name $image_tag |
||||
|
|
||||
|
#pull镜像 |
||||
|
echo "docker pull $image_full_name:$image_bak_tag" |
||||
|
docker pull $image_full_name:$image_bak_tag |
||||
|
|
||||
|
#运行镜像 |
||||
|
echo "docker run --net=host -d -p ${image_port}:${host_port} -t ${image_full_name}:$image_bak_tag" |
||||
|
docker run --net=host -d -p ${image_port}:${host_port} -t ${image_full_name}:$image_bak_tag |
||||
@ -0,0 +1,27 @@ |
|||||
|
#! /bin/sh |
||||
|
#镜像名称 |
||||
|
imageName=$1 |
||||
|
tag=$2 |
||||
|
|
||||
|
#容器字符串 |
||||
|
containerStr=`docker ps -a | grep -w ${imageName}:${tag} | awk '{print $1}'` |
||||
|
imageStr=`docker images | grep -w $imageName | awk '{print $3}'` |
||||
|
echo "imageStr:::${imageStr}----containerStr:::${containerStr}" |
||||
|
if [ "$imageStr" != "" ] ; then |
||||
|
if [ "$containerStr" != "" ] ; then |
||||
|
#停掉容器 |
||||
|
docker stop `docker ps -a | grep -w ${imageName}:${tag} | awk '{print $1}'` |
||||
|
|
||||
|
#删除容器 |
||||
|
docker rm `docker ps -a | grep -w ${imageName}:${tag} | awk '{print $1}'` |
||||
|
|
||||
|
#删除镜像 |
||||
|
docker rmi ${imageName}:${tag} |
||||
|
else |
||||
|
#删除镜像 |
||||
|
#docker rmi ${imageName}:${tag} |
||||
|
echo "skip docker rmi container" |
||||
|
|
||||
|
fi |
||||
|
fi |
||||
|
|
||||
@ -0,0 +1,35 @@ |
|||||
|
#! /bin/sh |
||||
|
#镜像名称 |
||||
|
image_name=$1 |
||||
|
#标签 |
||||
|
image_tag=$2 |
||||
|
#镜像仓库地址 |
||||
|
registry_url=$3 |
||||
|
#带仓库地址镜像名称 |
||||
|
image_full_name=${registry_url}/$image_name |
||||
|
|
||||
|
image_check_command=`docker images | grep -w $image_full_name | awk '{print $3}'` |
||||
|
echo "(1)image_check_command=$image_check_command" |
||||
|
if [ "$image_check_command" != "" ] ; then |
||||
|
#将仓库中的镜像名称删除 |
||||
|
docker rmi ${registry_url}/${image_name}:$image_tag |
||||
|
fi |
||||
|
|
||||
|
echo "(2)docker tag ${image_name}:${image_tag} ${registry_url}/$image_name" |
||||
|
|
||||
|
#必须要先将镜像的名称给变成 域名或ip/镜像名 |
||||
|
docker tag ${image_name}:${image_tag} ${registry_url}/$image_name |
||||
|
|
||||
|
|
||||
|
#推送到仓库上 |
||||
|
echo "(3-1)docker push ${registry_url}/$image_name" |
||||
|
docker push ${registry_url}/$image_name |
||||
|
|
||||
|
#删除本地镜像 |
||||
|
echo "(4)docker rmi $image_name:${image_tag}" |
||||
|
#docker rmi ${registry_url}/$image_name |
||||
|
docker rmi $image_name:${image_tag} |
||||
|
|
||||
|
echo "OK" |
||||
|
|
||||
|
|
||||
@ -0,0 +1,109 @@ |
|||||
|
|
||||
|
pipeline { |
||||
|
agent any |
||||
|
// environment { |
||||
|
// def imageName = "cloud/${project_names_and_port}" |
||||
|
// def tag="latest" |
||||
|
// } |
||||
|
tools { |
||||
|
maven "maven-3.6.3" |
||||
|
} |
||||
|
stages { |
||||
|
stage('check out') { |
||||
|
steps { |
||||
|
script{ |
||||
|
def gitea_url |
||||
|
if("${gitea_server}" == "136Git") |
||||
|
{ |
||||
|
gitea_url = "$local136_gitea_url" |
||||
|
} |
||||
|
if("${gitea_server}" == "aliyunGitea") |
||||
|
{ |
||||
|
gitea_url = "$aliyun_gitea_url" |
||||
|
} |
||||
|
echo "================${gitea_url}" |
||||
|
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: "${gitea_server}", url: gitea_url]]]) |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
stage('building dependency') { |
||||
|
steps { |
||||
|
sh ''' |
||||
|
mvn -f renren-commons clean install -Dautoconfig.skip=true -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true |
||||
|
''' |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
stage('test get param') { |
||||
|
steps { |
||||
|
script { |
||||
|
echo "registry_url=${registry_url}" |
||||
|
// project_names_and_port=renren-register@8761 |
||||
|
// select_ssh_name=aliyun@server1,195@server1,195@server2,195@server3 |
||||
|
def selectedProject = "${project_names_and_port}".split(',') |
||||
|
def selectedDeployServer = "${select_ssh_name}".split(',') |
||||
|
for(int i=0; i<selectedProject.size();i++) |
||||
|
{ |
||||
|
def module_name = selectedProject[i].split('@')[0] |
||||
|
def register_port = selectedProject[i].split('@')[1] |
||||
|
|
||||
|
sh "$shell_path/delete_image.sh $group_id/$module_name $latest_tag > /opt/jenkins_shell/delete_image.log 2>&1" |
||||
|
|
||||
|
sh "mvn -f $module_name clean install dockerfile:build -Dautoconfig.skip=true -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true" |
||||
|
|
||||
|
sh "$shell_path/upload_image.sh $group_id/$module_name $latest_tag $registry_url > /opt/jenkins_shell/upload_image.log 2>&1" |
||||
|
|
||||
|
echo "######### module_name=${module_name},register_port=${register_port}" |
||||
|
|
||||
|
|
||||
|
for(int j=0; j<selectedDeployServer.size();j++) |
||||
|
{ |
||||
|
def deployServerName = selectedDeployServer[j].split('@')[0] |
||||
|
def deployServiceConfig = selectedDeployServer[j].split('@')[1] |
||||
|
echo "deployServerName=${deployServerName}" |
||||
|
echo "deployServiceConfig=${deployServiceConfig}" |
||||
|
// 获取eureka profile |
||||
|
//fastwave_dev_master,fastwave_dev_slave1,fastwave_dev_slave2 |
||||
|
|
||||
|
def profile = "--spring.profiles.active=" + deployServiceConfig |
||||
|
// def latest_tag = deployServiceConfig |
||||
|
//注册中心地址 |
||||
|
def eureka_url |
||||
|
|
||||
|
if(deployServiceConfig == "server1"){ |
||||
|
register_port = "8761" |
||||
|
if(deployServerName == "195"){ |
||||
|
eureka_url = "192.168.1.195:" + register_port |
||||
|
}else{ |
||||
|
eureka_url = "47.93.219.55:" + register_port |
||||
|
} |
||||
|
}else if(deployServiceConfig == "server2"){ |
||||
|
register_port = "8762" |
||||
|
eureka_url = "192.168.1.195:" + register_port |
||||
|
}else if(deployServiceConfig == "server3"){ |
||||
|
register_port = "8763" |
||||
|
eureka_url = "192.168.1.195:" + register_port |
||||
|
} |
||||
|
// $group_id/$module_name:cloud/renren-register |
||||
|
// register_port:8761 |
||||
|
// register_port:8761 |
||||
|
// latest_tag:latest |
||||
|
// registry_url:47.93.219.55:5001 |
||||
|
// eureka_url:192.168.1.195:8761(8762,8763)或47.93.219.55:8761 |
||||
|
// deployServiceConfig:cloud/renren-register |
||||
|
// profile:cloud/renren-register |
||||
|
sshPublisher(publishers: [sshPublisherDesc(configName: "$deployServerName", transfers: [sshTransfer(cleanRemote: false, excludes: '', |
||||
|
execCommand: "/data/jenkins_shell/deploy_image_eureka.sh $group_id/$module_name $register_port $registry_url $eureka_url $deployServiceConfig $profile > /data/jenkins_shell/deploy_image_eureka.log 2>&1", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]) |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,87 @@ |
|||||
|
pipeline { |
||||
|
agent any |
||||
|
// environment { |
||||
|
// def imageName = "cloud/${project_names_and_port}" |
||||
|
// def tag="latest" |
||||
|
// } |
||||
|
tools { |
||||
|
maven "maven-3.6.3" |
||||
|
} |
||||
|
stages { |
||||
|
stage('check out') { |
||||
|
steps { |
||||
|
script{ |
||||
|
def gitea_url |
||||
|
if("${gitea_server}" == "136Git") |
||||
|
{ |
||||
|
gitea_url = "$local136_gitea_url" |
||||
|
} |
||||
|
if("${gitea_server}" == "aliyunGitea") |
||||
|
{ |
||||
|
gitea_url = "$aliyun_gitea_url" |
||||
|
} |
||||
|
echo "================${gitea_url}" |
||||
|
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: "${gitea_server}", url: gitea_url]]]) |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
stage('building dependency') { |
||||
|
steps { |
||||
|
sh ''' |
||||
|
mvn -f renren-commons clean install -Dautoconfig.skip=true -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true |
||||
|
mvn -f renren-module/stock/stock-client clean install -Dautoconfig.skip=true -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true |
||||
|
mvn -f renren-admin/renren-admin-client clean install -Dautoconfig.skip=true -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true |
||||
|
''' |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
stage('build images and deploy') { |
||||
|
|
||||
|
steps { |
||||
|
script { |
||||
|
//if(false){ |
||||
|
echo "registry_url=${registry_url}" |
||||
|
def selectedProjectNamesAndPort = "${project_names_and_port}".split(',') |
||||
|
def selectedSshNames = "${select_ssh_name}".split(',') |
||||
|
for(int i=0; i<selectedProjectNamesAndPort.size();i++) |
||||
|
{ |
||||
|
//renren-gateway@8080,renren-auth@8081,renren-admin/renren-admin-server@8082,renren-module/stock/stock-server@8085 |
||||
|
def projectNameWithGroup = selectedProjectNamesAndPort[i].split('@')[0] |
||||
|
def module_name = projectNameWithGroup |
||||
|
def service_name_array |
||||
|
if(projectNameWithGroup == "renren-admin/renren-admin-server"){ |
||||
|
module_name=projectNameWithGroup.split('/')[1] |
||||
|
}else if(projectNameWithGroup == "renren-module/stock/stock-server"){ |
||||
|
module_name=projectNameWithGroup.split('/')[2] |
||||
|
} |
||||
|
def register_port = selectedProjectNamesAndPort[i].split('@')[1] |
||||
|
|
||||
|
sh "$shell_path/delete_image.sh $group_id/$module_name $latest_tag > /opt/jenkins_shell/delete_image.log 2>&1" |
||||
|
|
||||
|
sh "mvn -f $projectNameWithGroup clean install dockerfile:build -Dautoconfig.skip=true -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true" |
||||
|
|
||||
|
sh "$shell_path/upload_image.sh $group_id/$module_name $latest_tag $registry_url > /opt/jenkins_shell/upload_image.log 2>&1" |
||||
|
|
||||
|
echo "######### module_name=${module_name},register_port=${register_port}" |
||||
|
|
||||
|
|
||||
|
for(int j=0; j<selectedSshNames.size();j++) |
||||
|
{ |
||||
|
def selectedSshName = selectedSshNames[j] |
||||
|
echo "selectedSshName=${selectedSshName}" |
||||
|
|
||||
|
sshPublisher(publishers: [sshPublisherDesc(configName: "$selectedSshName", transfers: [sshTransfer(cleanRemote: false, excludes: '', |
||||
|
execCommand: "/data/jenkins_shell/deploy_image.sh $group_id $module_name $register_port $registry_url $eureka_url > /data/jenkins_shell/deploy_image.log 2>&1", execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: '', sourceFiles: '')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]) |
||||
|
|
||||
|
} |
||||
|
|
||||
|
// } |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,56 @@ |
|||||
|
pipeline { |
||||
|
agent any |
||||
|
//parameters { |
||||
|
//string(name:'publish_server', defaultValue: '195', description: '部署服务器') |
||||
|
//} |
||||
|
|
||||
|
stages { |
||||
|
// 获取或更新最新代码 |
||||
|
stage('check out') { |
||||
|
steps { |
||||
|
script{ |
||||
|
def gitea_url |
||||
|
if("${gitea_server}" == "136Git") |
||||
|
{ |
||||
|
gitea_url = "$local136_gitea_url" |
||||
|
} |
||||
|
if("${gitea_server}" == "aliyunGitea") |
||||
|
{ |
||||
|
gitea_url = "$aliyun_gitea_url" |
||||
|
} |
||||
|
echo "================${gitea_url}" |
||||
|
// git 通过 用户名、密码认证 |
||||
|
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: "${gitea_server}", url: gitea_url]]]) |
||||
|
echo "check out OK" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
stage('build') { |
||||
|
steps { |
||||
|
nodejs('node10.19') { |
||||
|
sh ''' |
||||
|
cd /root/.jenkins/workspace/${single_project_name} |
||||
|
rm -rf dist |
||||
|
npm config set registry https://registry.npmmirror.com |
||||
|
npm install |
||||
|
npm install echarts@4.9.0 |
||||
|
npm run build |
||||
|
#cd dist |
||||
|
#JENKINS_NODE_COOKIE=dontKillMe nohup npm start & |
||||
|
''' |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
stage('publish') { |
||||
|
steps { |
||||
|
echo "copy file to nginx server" |
||||
|
sh ''' |
||||
|
pwd |
||||
|
''' |
||||
|
sshPublisher(publishers: [sshPublisherDesc(configName: "$publish_server", transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: "/data/openresty/nginx/html/", remoteDirectorySDF: false, removePrefix: "dist", sourceFiles: "dist/**/*")], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)]) |
||||
|
echo "copy file to nginx server end" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
Loading…
Reference in new issue