Skip to content

Commit 9fb9661

Browse files
committed
add spring - mybatis package
1 parent f17d0e7 commit 9fb9661

26 files changed

+1711
-20
lines changed

springboot-mybatis/docker-it.sh

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
#!/bin/sh
2+
3+
#########################
4+
# based on docker bin
5+
6+
packageName=$1
7+
imageVersion=$2
8+
dockerDestFolder=$3
9+
env=$4
10+
packageTZ=Asia/Shanghai
11+
12+
if [ "${packageName}" = "" ]; then
13+
echo [ERROR] "Please provide image name as first param"
14+
exit 1
15+
fi
16+
17+
if [ "${imageVersion}" = "" ]; then
18+
echo [ERROR] "Please provide image version as second param"
19+
exit 1
20+
fi
21+
22+
if [ "${dockerDestFolder}" = "" ]; then
23+
echo [ERROR] "Please provide docker dest folder"
24+
exit 1
25+
fi
26+
27+
if [ "${env}" = "" ]; then
28+
echo [ERROR] "Please provide env folder"
29+
exit 1
30+
fi
31+
32+
33+
COUNT=`docker -v 2>&1 | grep 'version' | grep -v grep | wc -l`
34+
if [ ${COUNT} != 1 ]; then
35+
echo [ERROR] "Cannot find docker command"
36+
exit 1
37+
fi
38+
39+
echo [INFO] "Remove old image from docker repository..."
40+
count=`docker images | grep "${packageName}" | grep "${imageVersion}" | wc -l`
41+
if [ ${count} != 1 ]; then
42+
echo [WARN] "image ${packageName} with version ${imageVersion} does not exist in docker repo"
43+
else
44+
docker rmi -f ${packageName}:${imageVersion}
45+
fi
46+
47+
#generate Dockerfile dynamically
48+
echo [INFO] "generating Dockerfile..."
49+
warName=${packageName}-${imageVersion}.war
50+
dateVersion=`date +%Y%m%d-%H%M%S`
51+
52+
#cat out to Dockerfile with content begin/end with EOF
53+
cat > target/Dockerfile <<EOF
54+
FROM debian:jessie
55+
MAINTAINER Cliff Ma
56+
COPY target/${warName} ${dockerDestFolder}/${dateVersion}/
57+
ENV LANG C.UTF-8
58+
ENV TZ=Asia/Shanghai
59+
RUN ln -snf /usr/share/zoneinfo/${packageTZ} /etc/localtime && echo ${packageTZ} > /etc/timezone
60+
RUN cd ${dockerDestFolder} \
61+
&& ln -svnf ${dateVersion} current \
62+
&& cd current \
63+
&& touch docker-entrypoint.sh \
64+
&& chmod +x docker-entrypoint.sh \
65+
&& echo "/opt/apps/java/bin/java -jar ${dockerDestFolder}/current/*.war --spring.config.location=${dockerDestFolder}/current/env/application.properties >/dev/null 2>&1" > docker-entrypoint.sh
66+
CMD .${dockerDestFolder}/current/docker-entrypoint.sh
67+
EOF
68+
69+
# echo $TZ > /etc/timezone TO someString to one file.
70+
# To set the right time.
71+
# ENV TZ=Asia/Shanghai
72+
# RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone
73+
# COPY conf/${env}/*.cer ${dockerDestFolder}/${dateVersion}/
74+
75+
76+
#read Dockerfile
77+
echo [INFO] "Building image..."
78+
docker build -t ${packageName}:${imageVersion} -f target/Dockerfile . || exit 1
79+
80+
81+
echo [INFO] "Exporting image to target folder..."
82+
docker save ${packageName}:${imageVersion} > target/${packageName}-${imageVersion}.image
83+
84+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# EMBEDDED SERVER CONFIGURATION (ServerProperties)
2+
server.port=8099
3+
4+
5+
ms.db.driverClassName=com.mysql.jdbc.Driver
6+
ms.db.url=jdbc:mysql://localhost:3306/msm?useSSL=false&useUnicode=true&characterEncoding=UTF-8
7+
ms.db.username=root
8+
ms.db.password=admin
9+
ms.db.maxActive=500
+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
#dev
2+
3+
################
4+
##this property file is used to export shell session-scoped variables by command 'source *.properties'
5+
################
6+
7+
#app root
8+
prop_appRoot=/opt/apps
9+
10+
11+
#run postinstall or not.(It is not used any more.)
12+
prop_runPreinstall=false
13+
prop_runPostinstall=false
14+
15+
#the package name
16+
prop_package=springboot-mybatis
17+
#the package version
18+
prop_packageVersion=v1
19+
20+
21+
#Your Java Home
22+
prop_javaHome=/opt/apps/jdk/current
23+
24+
#owner and group for package
25+
prop_ownerGroup=root:root
26+
27+
28+
#folders which need to be created manually, the folder path will be relative to the app home folder
29+
#seperate multi folders with space, don't forget the double "
30+
prop_manualFolders="var/logs"
31+
#manual folders mode
32+
prop_manualFolderMode=777
33+
34+
35+
###################
36+
#Cluster config
37+
###################
38+
#used by install.sh to decide the install mode: cluster or single node(default false)
39+
prop_isCluster=false
40+
41+
#single
42+
prop_singleNode=springboot-mybatis-dev
43+
44+
#cluster
45+
#all the nodes for the cluster, only is is accepted now
46+
#seperated by , sign (EX di,d2,192.168.100.2)(If you want to use d1 d2,you must config the url in etc/local)
47+
prop_clusterNodes=d1
48+
49+
50+
###################
51+
#springboot config
52+
###################
53+
prop_springbootWarName=${prop_package}
54+
prop_springbootWarVersion=${prop_packageVersion}
55+
prop_springbootProcessKeyWord=${prop_springbootWarName}-${prop_springbootWarVersion}.war
56+
57+
58+
##############
59+
#docker config
60+
##############
61+
prop_dockerDestFolder=${prop_appRoot}/${prop_package}
62+
#docker daemon.(Docker is online or not.)
63+
prop_dockerProcessKeyWord='docker'
64+
#docker image name, e.g. cliff/nginx or nginx
65+
prop_dockerImageName=${prop_package}
66+
#docker image version, e.g. v1/v2 or latest
67+
prop_dockerImageVersion=${prop_packageVersion}
68+
#docker container count in each host server(1 in most situation.)
69+
prop_dockerContainerCount=1
70+
71+
#docker config file mapping, multiple file mappings is supported so you can specify multiple -v xx:xx
72+
prop_dockerConfigFileMapping="env:${prop_dockerDestFolder}/current/env"
73+
prop_dockerLogFolderMapping="var/logs/nodexxx:${prop_dockerDestFolder}/var/logs"
74+
prop_dockerUploadFolderMapping="uploadFiles:${prop_dockerDestFolder}/uploadFiles"
75+
# It is not used any more. Add command `--net=host`
76+
prop_dockerPortMappings=80:8081
77+
78+
##########################################
79+
#seconds config before start and stop
80+
##########################################
81+
82+
#the sleep time to wail for each node starting up after another, the unit is second
83+
prop_startAllSleep=2
84+
85+
#the sleep time to wail for one node starting up.
86+
#sometimes we start up server by backend job so we need wait some time
87+
prop_startOneSleep=8
88+
89+
#stop node timeout, if timeout we will kill -9, the unit is second
90+
prop_stopNodeTimeout=2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Output pattern : date [thread] priority category - message
2+
log4j.rootLogger=INFO, Console, R
3+
4+
#Console
5+
log4j.appender.Console=org.apache.log4j.ConsoleAppender
6+
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
7+
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
8+
9+
10+
log4j.appender.R=org.apache.log4j.RollingFileAppender
11+
log4j.appender.R.File=logs/cmbms.log
12+
log4j.appender.R.MaxFileSize=50kB
13+
log4j.appender.R.MaxBackupIndex=5
14+
log4j.appender.R.layout=org.apache.log4j.PatternLayout
15+
log4j.appender.R.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
16+
17+
18+
log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender
19+
log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd
20+
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout
21+
#log4j.appender.ServerDailyRollingFile.Append=true
22+
23+
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
24+
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
25+
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n
26+

springboot-mybatis/env/local/env.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ prop_runPreinstall=false
1313
prop_runPostinstall=false
1414

1515
#the package name
16-
prop_package=epp-manager
16+
prop_package=springboot-mybatis
1717
#the package version
1818
prop_packageVersion=v1
1919

springboot-mybatis/package.sh

+117
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
#!/bin/bash
2+
3+
#####################
4+
# bash only
5+
# usage ./package.sh
6+
#####################
7+
8+
#declare -a: define an array
9+
#declare -i: define an integer
10+
declare -i index=1
11+
declare -a envMap
12+
declare -a formatMap=(["1"]="docker" ["2"]="springboot")
13+
14+
#GET THE URL OF CURRENT PATH
15+
CURRENT_DIR=`dirname $0`
16+
cd $CURRENT_DIR
17+
18+
#########################
19+
# confirm the env
20+
#########################
21+
index=1
22+
#scan the envs from conf/*
23+
for i in env/* ; do
24+
if [ -d ${i} ]; then
25+
envMap["${index}"]="`basename ${i}`"
26+
index=index+1
27+
fi
28+
done
29+
30+
#Print the choice
31+
env=1
32+
echo "Please choose the environment by typing the number [default ${env}]"
33+
for i in ${!envMap[@]} ;do
34+
echo [${i}]:${envMap[${i}]}
35+
done
36+
37+
#Read the envTmp . Set The finalEnv. Pay Attention 'read' NOT 'Read'
38+
read envTmp
39+
# echo "${envTmp}"
40+
if [ "${envTmp}" != "" ]; then
41+
env=${envTmp}
42+
fi
43+
# echo "${env}"
44+
finalEnv=${envMap[${env}]}
45+
echo "${finalEnv}"
46+
echo "[INFO] You are choosing environment: ${finalEnv}"
47+
echo "[INFO] Set the env properties by env/${finalEnv}/env.properties"
48+
49+
#Load the env/${finalEnv}/env.properties
50+
. env/${finalEnv}/env.properties
51+
echo ""
52+
echo ""
53+
54+
#########################
55+
# confirm the format
56+
#########################
57+
format=1
58+
for i in ${!formatMap[@]};do
59+
echo [${i}]: ${formatMap[${i}]}
60+
done
61+
read formatTmp
62+
if [ "${formatTmp}" != "" ]; then
63+
format=${formatTmp}
64+
fi
65+
finalFormat=${formatMap[${format}]}
66+
#########################
67+
# confirm the package
68+
#########################
69+
finalPackage=${prop_package}
70+
echo "[INFO] You are choosing package version: ${finalPackage}"
71+
echo ""
72+
echo ""
73+
74+
#########################
75+
# confirm the version
76+
#########################
77+
finalPackageVersion=${prop_packageVersion}
78+
echo "[INFO] You are choosing package version: ${finalPackageVersion}"
79+
echo ""
80+
echo ""
81+
82+
######################
83+
# begin packing
84+
######################
85+
if [ -n "${finalFormat}" ] && [ "${finalFormat}" = "springboot" ]; then
86+
##############################
87+
# generate executable war file
88+
##############################
89+
90+
#noneed.properties The .properties is outside the war . So it is no need any more.
91+
theCommand="./war-it.sh ${finalPackage} ${finalPackageVersion} ${finalEnv} 'noneed.properties'"
92+
echo [INFO] ${theCommand}
93+
eval ${theCommand} || exit 1
94+
else
95+
##############################
96+
# generate executable war file
97+
##############################
98+
theCommand="./war-it.sh ${finalPackage} ${finalPackageVersion} ${finalEnv} 'noneed.properties'"
99+
echo [INFO] ${theCommand}
100+
eval ${theCommand} || exit 1
101+
102+
103+
104+
#####################################
105+
# generate docker image and export it
106+
#####################################
107+
theCommand="./docker-it.sh ${finalPackage} ${finalPackageVersion} ${prop_dockerDestFolder} ${finalEnv}"
108+
echo [INFO] ${theCommand}
109+
eval ${theCommand} || exit 1
110+
fi
111+
112+
theCommand="./tar-it.sh ${finalEnv} ${finalPackage} ${finalPackageVersion} ${finalFormat}"
113+
echo [INFO] ${theCommand}
114+
eval ${theCommand} || exit 1
115+
116+
echo "[INFO] package is done successfully"
117+

0 commit comments

Comments
 (0)