5 changed files with 499 additions and 0 deletions
@ -0,0 +1,28 @@ |
|||||
|
# IDEA 默认排除的 |
||||
|
*.class |
||||
|
*.log |
||||
|
*.ctxt |
||||
|
.mtj.tmp/ |
||||
|
hs_err_pid* |
||||
|
|
||||
|
# 常见的包文件 |
||||
|
*.zip |
||||
|
*.tar.gz |
||||
|
*.rar |
||||
|
*.ear |
||||
|
*.war |
||||
|
|
||||
|
# 自定义排除的文件 |
||||
|
*.java |
||||
|
*.xml |
||||
|
*.iml |
||||
|
*.properties |
||||
|
|
||||
|
# 自定义排除的文件夹 |
||||
|
.git |
||||
|
.idea |
||||
|
classes |
||||
|
generated-sources |
||||
|
maven-archiver |
||||
|
maven-status |
||||
|
gateway-Gemini.jar |
||||
@ -0,0 +1,4 @@ |
|||||
|
FROM 10.100.166.50:15001/library/jdk:1.8.0_341 as dev |
||||
|
ADD gateway-Gemini-exec.jar app.jar |
||||
|
ENTRYPOINT ["java", "-server", "-jar", "app.jar", "--spring.profiles.active=global", "--server.port=8080"] |
||||
|
EXPOSE 8080 |
||||
@ -0,0 +1,73 @@ |
|||||
|
String Dockerfile = """ |
||||
|
FROM 10.100.166.50:15001/library/jdk:1.8.0_341 as dev |
||||
|
ADD gateway-Gemini-exec.jar app.jar |
||||
|
ENTRYPOINT ["java", "-server", "-jar", "app.jar", "--spring.profiles.active=global", "--server.port=8080"] |
||||
|
EXPOSE 8080 |
||||
|
""".trim() |
||||
|
|
||||
|
pipeline { |
||||
|
agent any |
||||
|
|
||||
|
environment { |
||||
|
// 源码配置 |
||||
|
git = 'http://git.galaxis.yvanui.com/thinking/thinkingframework.git' |
||||
|
gitCredentials = 'lizw(git.galaxis.yvanui.com)' |
||||
|
// 构建配置 |
||||
|
target = "${WORKSPACE}/cloud/gateway/target" |
||||
|
dockerImgTag = "wms-gateway:v$BUILD_NUMBER" |
||||
|
// harbor配置 |
||||
|
harbor = 'http://10.100.166.50:15001' |
||||
|
harborCredentials = credentials('admin(10.100.166.50:15001)') |
||||
|
harborRepositorie = 'wms' |
||||
|
// 自定义环境变量 |
||||
|
JAVA_HOME = '/home/www/jenkins/jdk1.8.0_341' |
||||
|
MAVEN_HOME = '/home/www/jenkins/apache-maven-3.8.6' |
||||
|
NODE_HOME = '/home/www/jenkins/node-v16.17.0-linux-x64' |
||||
|
PATH = "$JAVA_HOME/bin:$MAVEN_HOME/bin:$NODE_HOME/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin" |
||||
|
} |
||||
|
|
||||
|
stages { |
||||
|
stage('#检查环境') { |
||||
|
steps { |
||||
|
sh 'java -version' |
||||
|
sh 'mvn --version' |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
stage('#拉去代码') { |
||||
|
steps { |
||||
|
checkout([ |
||||
|
$class : 'GitSCM', |
||||
|
branches : [[name: '*/develop']], |
||||
|
userRemoteConfigs: [[url: "${git}", credentialsId: "${gitCredentials}"]], |
||||
|
extensions : [], |
||||
|
]) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
stage('#编译项目') { |
||||
|
steps { |
||||
|
sh 'mvn clean package -Dmaven.test.skip=true' |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
stage('#构建镜像') { |
||||
|
steps { |
||||
|
sh """ |
||||
|
cd $target |
||||
|
pwd |
||||
|
echo '$Dockerfile' > Dockerfile |
||||
|
sudo docker build --target dev -t $dockerImgTag $target |
||||
|
""" |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
stage('#推送镜像') { |
||||
|
steps { |
||||
|
sh 'sudo docker login --username $harborCredentials_USR --password $harborCredentials_PSW $harbor' |
||||
|
sh "sudo docker tag $dockerImgTag ${harbor.replaceAll('https?://', '')}/$harborRepositorie/$dockerImgTag" |
||||
|
sh "sudo docker push ${harbor.replaceAll('https?://', '')}/$harborRepositorie/$dockerImgTag" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,187 @@ |
|||||
|
apiVersion: apps/v1 |
||||
|
kind: Deployment |
||||
|
metadata: |
||||
|
annotations: |
||||
|
deployment.kubernetes.io/revision: "1" |
||||
|
field.cattle.io/creatorId: user-6fxhv |
||||
|
field.cattle.io/publicEndpoints: '[{"addresses":["10.100.166.50"],"port":30188,"protocol":"TCP","serviceName":"wms:wms-gateway-nodeport","allNodes":true}]' |
||||
|
creationTimestamp: "2022-09-23T05:49:52Z" |
||||
|
generation: 2 |
||||
|
labels: |
||||
|
cattle.io/creator: norman |
||||
|
workload.user.cattle.io/workloadselector: deployment-wms-wms-gateway |
||||
|
managedFields: |
||||
|
- apiVersion: apps/v1 |
||||
|
fieldsType: FieldsV1 |
||||
|
fieldsV1: |
||||
|
f:metadata: |
||||
|
f:annotations: |
||||
|
f:field.cattle.io/publicEndpoints: {} |
||||
|
manager: agent |
||||
|
operation: Update |
||||
|
time: "2022-09-23T05:49:52Z" |
||||
|
- apiVersion: apps/v1 |
||||
|
fieldsType: FieldsV1 |
||||
|
fieldsV1: |
||||
|
f:metadata: |
||||
|
f:annotations: |
||||
|
f:deployment.kubernetes.io/revision: {} |
||||
|
f:status: |
||||
|
f:conditions: |
||||
|
.: {} |
||||
|
k:{"type":"Available"}: |
||||
|
.: {} |
||||
|
f:lastTransitionTime: {} |
||||
|
f:lastUpdateTime: {} |
||||
|
f:message: {} |
||||
|
f:reason: {} |
||||
|
f:status: {} |
||||
|
f:type: {} |
||||
|
k:{"type":"Progressing"}: |
||||
|
.: {} |
||||
|
f:lastTransitionTime: {} |
||||
|
f:lastUpdateTime: {} |
||||
|
f:message: {} |
||||
|
f:reason: {} |
||||
|
f:status: {} |
||||
|
f:type: {} |
||||
|
f:observedGeneration: {} |
||||
|
f:replicas: {} |
||||
|
f:unavailableReplicas: {} |
||||
|
f:updatedReplicas: {} |
||||
|
manager: kube-controller-manager |
||||
|
operation: Update |
||||
|
subresource: status |
||||
|
time: "2022-09-23T05:49:52Z" |
||||
|
- apiVersion: apps/v1 |
||||
|
fieldsType: FieldsV1 |
||||
|
fieldsV1: |
||||
|
f:metadata: |
||||
|
f:annotations: |
||||
|
.: {} |
||||
|
f:field.cattle.io/creatorId: {} |
||||
|
f:labels: |
||||
|
.: {} |
||||
|
f:cattle.io/creator: {} |
||||
|
f:workload.user.cattle.io/workloadselector: {} |
||||
|
f:spec: |
||||
|
f:progressDeadlineSeconds: {} |
||||
|
f:replicas: {} |
||||
|
f:revisionHistoryLimit: {} |
||||
|
f:selector: {} |
||||
|
f:strategy: |
||||
|
f:rollingUpdate: |
||||
|
.: {} |
||||
|
f:maxSurge: {} |
||||
|
f:maxUnavailable: {} |
||||
|
f:type: {} |
||||
|
f:template: |
||||
|
f:metadata: |
||||
|
f:annotations: |
||||
|
.: {} |
||||
|
f:cattle.io/timestamp: {} |
||||
|
f:field.cattle.io/ports: {} |
||||
|
f:labels: |
||||
|
.: {} |
||||
|
f:workload.user.cattle.io/workloadselector: {} |
||||
|
f:spec: |
||||
|
f:containers: |
||||
|
k:{"name":"wms-gateway"}: |
||||
|
.: {} |
||||
|
f:image: {} |
||||
|
f:imagePullPolicy: {} |
||||
|
f:name: {} |
||||
|
f:ports: |
||||
|
.: {} |
||||
|
k:{"containerPort":8080,"protocol":"TCP"}: |
||||
|
.: {} |
||||
|
f:containerPort: {} |
||||
|
f:name: {} |
||||
|
f:protocol: {} |
||||
|
f:resources: {} |
||||
|
f:securityContext: |
||||
|
.: {} |
||||
|
f:allowPrivilegeEscalation: {} |
||||
|
f:capabilities: {} |
||||
|
f:privileged: {} |
||||
|
f:readOnlyRootFilesystem: {} |
||||
|
f:runAsNonRoot: {} |
||||
|
f:stdin: {} |
||||
|
f:terminationMessagePath: {} |
||||
|
f:terminationMessagePolicy: {} |
||||
|
f:tty: {} |
||||
|
f:dnsPolicy: {} |
||||
|
f:restartPolicy: {} |
||||
|
f:schedulerName: {} |
||||
|
f:securityContext: {} |
||||
|
f:terminationGracePeriodSeconds: {} |
||||
|
manager: rancher |
||||
|
operation: Update |
||||
|
time: "2022-09-23T05:49:52Z" |
||||
|
name: wms-gateway |
||||
|
namespace: wms |
||||
|
resourceVersion: "77237" |
||||
|
uid: 0a3900e8-060c-4b63-83c0-88bdaca4fd84 |
||||
|
spec: |
||||
|
progressDeadlineSeconds: 600 |
||||
|
replicas: 1 |
||||
|
revisionHistoryLimit: 10 |
||||
|
selector: |
||||
|
matchLabels: |
||||
|
workload.user.cattle.io/workloadselector: deployment-wms-wms-gateway |
||||
|
strategy: |
||||
|
rollingUpdate: |
||||
|
maxSurge: 1 |
||||
|
maxUnavailable: 0 |
||||
|
type: RollingUpdate |
||||
|
template: |
||||
|
metadata: |
||||
|
annotations: |
||||
|
cattle.io/timestamp: "2022-09-23T05:49:51Z" |
||||
|
field.cattle.io/ports: '[[{"containerPort":8080,"dnsName":"wms-gateway-nodeport","hostPort":0,"kind":"NodePort","name":"8080tcp01","protocol":"TCP","sourcePort":0}]]' |
||||
|
creationTimestamp: null |
||||
|
labels: |
||||
|
workload.user.cattle.io/workloadselector: deployment-wms-wms-gateway |
||||
|
spec: |
||||
|
containers: |
||||
|
- image: 10.100.166.50:15001/wms/wms-gateway@sha256:6e8c061d45420800a12ea0335e9ecd4c9c2154fd84d2d6554740716255772a45 |
||||
|
imagePullPolicy: Always |
||||
|
name: wms-gateway |
||||
|
ports: |
||||
|
- containerPort: 8080 |
||||
|
name: 8080tcp01 |
||||
|
protocol: TCP |
||||
|
resources: {} |
||||
|
securityContext: |
||||
|
allowPrivilegeEscalation: false |
||||
|
capabilities: {} |
||||
|
privileged: false |
||||
|
readOnlyRootFilesystem: false |
||||
|
runAsNonRoot: false |
||||
|
stdin: true |
||||
|
terminationMessagePath: /dev/termination-log |
||||
|
terminationMessagePolicy: File |
||||
|
tty: true |
||||
|
dnsPolicy: ClusterFirst |
||||
|
restartPolicy: Always |
||||
|
schedulerName: default-scheduler |
||||
|
securityContext: {} |
||||
|
terminationGracePeriodSeconds: 30 |
||||
|
status: |
||||
|
conditions: |
||||
|
- lastTransitionTime: "2022-09-23T05:49:52Z" |
||||
|
lastUpdateTime: "2022-09-23T05:49:52Z" |
||||
|
message: Deployment does not have minimum availability. |
||||
|
reason: MinimumReplicasUnavailable |
||||
|
status: "False" |
||||
|
type: Available |
||||
|
- lastTransitionTime: "2022-09-23T05:49:52Z" |
||||
|
lastUpdateTime: "2022-09-23T05:49:52Z" |
||||
|
message: ReplicaSet "wms-gateway-5f8f6fd8c6" is progressing. |
||||
|
reason: ReplicaSetUpdated |
||||
|
status: "True" |
||||
|
type: Progressing |
||||
|
observedGeneration: 2 |
||||
|
replicas: 1 |
||||
|
unavailableReplicas: 1 |
||||
|
updatedReplicas: 1 |
||||
@ -0,0 +1,207 @@ |
|||||
|
#!/bin/bash |
||||
|
#set -x |
||||
|
set -e |
||||
|
|
||||
|
codePath=/home/www/deploy/wms85std_test |
||||
|
gitUrlArr=( |
||||
|
"www@git.yvanui.com:jztd/wms85std.git" |
||||
|
# "http://git.yvanui.com/jztd/wms85std.git" |
||||
|
"www@git.yvanui.com:lizhiwei/yvan-framework.git" |
||||
|
# "http://git.yvanui.com/lizhiwei/yvan-framework.git" |
||||
|
"www@git.yvanui.com:luoyifan/yvan-ui.git" |
||||
|
# "http://git.yvanui.com/luoyifan/yvan-ui.git" |
||||
|
) |
||||
|
|
||||
|
branchArr=( |
||||
|
"master" |
||||
|
"8.6" |
||||
|
"master" |
||||
|
) |
||||
|
positionArr=( |
||||
|
"." |
||||
|
"yvan-framework" |
||||
|
"yvan-ui" |
||||
|
) |
||||
|
# 是否需要构建,-1:自动;0:不需要;1:需要 |
||||
|
needBuild=( |
||||
|
"1" |
||||
|
"1" |
||||
|
"1" |
||||
|
) |
||||
|
|
||||
|
echoPrefix="\033[36m+" |
||||
|
echoSuffix="\033[0m" |
||||
|
|
||||
|
# 强制覆盖本地的代码 git fetch --all && git reset --hard origin/master |
||||
|
isChange="1" # 仓库是否发生变化,0:未变化;非0:变化 |
||||
|
pullCode() { |
||||
|
# Usage: pullCode "codePath" "gitUrl" "branch" "position" |
||||
|
path=$1 # 代码保存路径 |
||||
|
gitUrl=$2 # git仓库地址 |
||||
|
branch=${3:-"master"} # git分支 |
||||
|
position=${4:-""} # 使用“.”clone到当前文件夹 |
||||
|
isChange="1" |
||||
|
# 创建文件夹 |
||||
|
if [ ! -d "$path" ]; then |
||||
|
echo -e "$echoPrefix 请检查服务器是否正确,再执行: mkdir -p $path $echoSuffix" |
||||
|
exit |
||||
|
fi |
||||
|
|
||||
|
# git clone |
||||
|
echo -e "$echoPrefix cd $path $echoSuffix" |
||||
|
cd $path |
||||
|
if [ "`ls -A $path`" == "" ] || [ ! -d "$path/$position" ] || [ "`ls -A $path/$position`" = "" ]; then |
||||
|
echo -e "$echoPrefix git clone $gitUrl $position $echoSuffix" |
||||
|
git clone $gitUrl $position |
||||
|
isChange="2" |
||||
|
fi |
||||
|
|
||||
|
# 进入文件夹,切换分支,git pull |
||||
|
if [ "$position" != "" ]; then |
||||
|
echo -e "$echoPrefix cd $position $echoSuffix" |
||||
|
cd $position |
||||
|
fi |
||||
|
echo -e "$echoPrefix git checkout $branch $echoSuffix" |
||||
|
git checkout $branch |
||||
|
echo -e "$echoPrefix git checkout . $echoSuffix" |
||||
|
git checkout . |
||||
|
echo -e "$echoPrefix git pull $echoSuffix" |
||||
|
if [ "`git pull`" == "Already up-to-date." ] && [ $isChange == "1" ]; then |
||||
|
isChange="0" |
||||
|
fi |
||||
|
echo "" |
||||
|
} |
||||
|
|
||||
|
buildCode() { |
||||
|
# 构建 yvan-ui |
||||
|
if [ "${needBuild[0]}" != "0" ]; then |
||||
|
echo -e "$echoPrefix cd $codePath/yvan-ui $echoSuffix" |
||||
|
cd "$codePath/yvan-ui" |
||||
|
echo -e "$echoPrefix yarn run init $echoSuffix" |
||||
|
yarn run init |
||||
|
# echo -e "$echoPrefix yarn run dev2 $echoSuffix" |
||||
|
# yarn run dev2 |
||||
|
echo "" |
||||
|
else |
||||
|
echo "yvan-ui 文件未变化" |
||||
|
fi |
||||
|
|
||||
|
# 构建 java |
||||
|
echo -e "$echoPrefix cd $codePath $echoSuffix" |
||||
|
cd $codePath |
||||
|
echo -e "$echoPrefix gradle build -x test $echoSuffix" |
||||
|
gradle build -x test |
||||
|
echo "" |
||||
|
} |
||||
|
|
||||
|
logPath=/data/logs/wms85std_test/server.log |
||||
|
dirPath=/home/www/deploy/wms85std_test/wms/wms-application/build/libs/ |
||||
|
serverName=wms85std_test |
||||
|
|
||||
|
cmd=$1 |
||||
|
profiles=${2:-"test"} |
||||
|
|
||||
|
#------------------------------------------------------------------- |
||||
|
JAVA_MEM_OPTS=" -DappName=${serverName} -server -Xmx2g -Xms2g" |
||||
|
DATABASE_OPTS=" -Ddatabase.codeset=ISO-8859-1 -Ddatabase.logging=false" |
||||
|
JAVA_OPTS_EXT=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dapplication.codeset=UTF-8 -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai" |
||||
|
#------------------------------------------------------------------- |
||||
|
|
||||
|
startServer() { |
||||
|
pid=$1 |
||||
|
if [ -z $pid ];then |
||||
|
echo -e "$echoPrefix cd $dirPath../runtime/ $echoSuffix" |
||||
|
cd $dirPath../runtime/ |
||||
|
echo -e "$echoPrefix java $JAVA_MEM_OPTS $DATABASE_OPTS $JAVA_OPTS_EXT -jar ./wms-application-0.0.0-SNAPSHOT.jar --spring.profiles.active=global,$profiles --server.port=8004 >>/dev/null 2>&1 & $echoSuffix" |
||||
|
java $JAVA_MEM_OPTS $DATABASE_OPTS $JAVA_OPTS_EXT -jar ./wms-application-0.0.0-SNAPSHOT.jar --spring.profiles.active=global,$profiles --server.port=8004 >>/dev/null 2>&1 & |
||||
|
echo "$serverName 启动成功!" |
||||
|
else |
||||
|
echo "$serverName 正在运行..." |
||||
|
fi |
||||
|
echo "查看日志: tail -F $logPath -n 100" |
||||
|
} |
||||
|
|
||||
|
stopServer() { |
||||
|
pid=$1 |
||||
|
if [ -z $pid ];then |
||||
|
echo "$serverName 未运行" |
||||
|
else |
||||
|
echo -e "$echoPrefix ps -ef | grep "DappName=${serverName}" | grep -v 'grep' | awk '{print \$2}' | xargs kill $echoSuffix" |
||||
|
ps -ef | grep "DappName=${serverName}" | grep -v 'grep' | awk '{print $2}' | xargs kill |
||||
|
echo "$serverName 已停止!" |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
deployPull() { |
||||
|
for ((idx=0; idx<${#gitUrlArr[@]}; idx++)); do |
||||
|
pullCode $codePath ${gitUrlArr[idx]} ${branchArr[idx]} ${positionArr[idx]} |
||||
|
if [ "${needBuild[idx]}" == "-1" ]; then |
||||
|
needBuild[idx]=$isChange |
||||
|
fi |
||||
|
done |
||||
|
echo "###--代码更新完成--------------------------------------------------------------------------###" |
||||
|
echo "" |
||||
|
} |
||||
|
|
||||
|
deployServer() { |
||||
|
pid=$1 |
||||
|
deployPull |
||||
|
buildCode |
||||
|
echo "###--代码构建完成--------------------------------------------------------------------------###" |
||||
|
# 重启服务 |
||||
|
if [ ! -z $pid ];then |
||||
|
stopServer $pid |
||||
|
sleep 8s |
||||
|
fi |
||||
|
# 移动编译后的文件 |
||||
|
echo -e "$echoPrefix cd $dirPath $echoSuffix" |
||||
|
cd $dirPath |
||||
|
echo -e "$echoPrefix rm -rf ../runtime $echoSuffix" |
||||
|
rm -rf ../runtime |
||||
|
echo -e "$echoPrefix cp -r ./ ../runtime $echoSuffix" |
||||
|
cp -r ./ ../runtime |
||||
|
echo "" |
||||
|
startServer |
||||
|
} |
||||
|
|
||||
|
restartServer() { |
||||
|
pid=$1 |
||||
|
if [ ! -z $pid ];then |
||||
|
stopServer $pid |
||||
|
sleep 3s |
||||
|
fi |
||||
|
startServer |
||||
|
} |
||||
|
|
||||
|
logs() { |
||||
|
tail -F $logPath -n 100 |
||||
|
} |
||||
|
|
||||
|
pid=`ps -ef | grep "DappName=${serverName}" | grep -v 'grep' | awk '{print $2}'` |
||||
|
# 操作参数: pull deploy restart start stop kill log logs |
||||
|
if [ "$cmd" == "pull" ];then |
||||
|
deployPull |
||||
|
if [ -z $pid ];then |
||||
|
echo "$serverName 未运行 | 输入操作参数: pull deploy restart start stop kill log logs" |
||||
|
fi |
||||
|
elif [ "$cmd" == "deploy" ];then |
||||
|
deployServer $pid |
||||
|
elif [ "$cmd" == "restart" ];then |
||||
|
restartServer $pid |
||||
|
elif [ "$cmd" == "start" ];then |
||||
|
startServer $pid |
||||
|
elif [ "$cmd" == "stop" ] || [ "$cmd" == "kill" ];then |
||||
|
stopServer $pid |
||||
|
elif [ "$cmd" == "log" ] || [ "$cmd" == "logs" ];then |
||||
|
logs |
||||
|
else |
||||
|
if [ -z $pid ];then |
||||
|
echo "$serverName 未运行 | 输入操作参数: pull deploy restart start stop kill log logs" |
||||
|
else |
||||
|
echo "输入操作参数: pull deploy restart start stop kill log logs" |
||||
|
echo "pid=$pid | $serverName 正在运行... | 查看日志: tail -F $logPath -n 100" |
||||
|
fi |
||||
|
fi |
||||
|
|
||||
|
# wms85测试 |
||||
|
# bash <(curl -s http://git.yvanui.com/lizhiwei/jztd-deploy/raw/master/hua_wei_yun/03wms84-test.sh) [cmd profiles] |
||||
Loading…
Reference in new issue