Ver Fonte

添加启动脚本

tianyunperfect há 5 anos atrás
pai
commit
95c1705a72

+ 11 - 0
README.md

@@ -4,6 +4,7 @@ springboot-web常用功能整合,包含常用功能。
 - log4j2 日志异步打印
 - log4j2 日志异步打印
 - 自动捕获web异常
 - 自动捕获web异常
 - controller Long 类型数据自动转换
 - controller Long 类型数据自动转换
+- docker启动脚本、sh启动脚本
 
 
 工具类
 工具类
 - json工具类
 - json工具类
@@ -22,6 +23,16 @@ git clone https://github.com/tianyunperfect/springboot-parent.git
 2. 修改父pom文件module的引用
 2. 修改父pom文件module的引用
 3. 修改当前pom文件中jar名称
 3. 修改当前pom文件中jar名称
 ```
 ```
+3、发布
+
+docker发布
+```text
+sh bin/docker-build
+```
+shell启动
+```text
+sh bin/boot start
+```
 
 
 ## LICENSE
 ## LICENSE
 
 

+ 8 - 0
app/Dockerfile

@@ -0,0 +1,8 @@
+FROM hub.c.163.com/library/openjdk:8-jdk
+VOLUME /tmp
+ADD target/*.jar app.jar
+
+# 抛出端口,起标记作用
+EXPOSE 8080
+
+ENTRYPOINT ["java","-jar","/app.jar"]

+ 114 - 0
app/bin/boot

@@ -0,0 +1,114 @@
+#!/bin/bash
+
+APP_NAME=app-1.0-SNAPSHOT.jar
+
+cd `dirname $0`
+cd ..
+
+STDOUT_FILE=/dev/null
+
+# 配置文件存放位置,如果有多个,则以逗号分隔
+JAVA_PATH_OPTS=" -Dloader.path=config -Djava.io.tmpdir=./ "
+# 基础参数
+JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 "
+# java调试
+JAVA_DEBUG_OPTS=""
+if [ "$2" = "debug" ];then
+	JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8081 "
+fi
+# 内存配置
+JAVA_MEM_OPTS=""
+BITS=`java -version 2>&1 | grep -i 64-bit`
+if [ -n "$BITS" ]; then
+	JAVA_MEM_OPTS=" -server -Xms2g -Xmx2g -Xloggc:log/gc.log "
+fi
+
+# 使用说明,用来提示输入参数
+usage() {
+    echo "Usage: sh boot [APP_NAME] [start|stop|restart|status]"
+    exit 1
+}
+
+# 检查程序是否在运行
+is_exist(){
+    # 获取PID
+    PID=$(ps -ef |grep ${APP_NAME} | grep -v $0 |grep -v grep |awk '{print $2}')
+    # -z "${pid}"判断pid是否存在,如果不存在返回1,存在返回0
+    if [ -z "${PID}" ]; then
+        # 如果进程不存在返回1
+        return 1
+    els
+        # 进程存在返回0
+        return 0
+    fi
+}
+
+# 定义启动程序函数
+start(){
+    is_exist
+    if [ $? -eq "0" ]; then
+        echo "${APP_NAME} is already running, PID=${PID}"
+    else
+        nohup java -jar $JAVA_PATH_OPTS $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS ${APP_NAME} >> ${STDOUT_FILE} 2>&1 &
+        PID=$(echo $!)
+        echo "${APP_NAME} start success, PID=$!"
+    fi
+}
+
+# 停止进程函数
+stop(){
+    is_exist
+    if [ $? -eq "0" ]; then
+        kill -9 ${PID}
+        # 检测是否停止
+        COUNT=1
+        while [ $COUNT -eq 1 ]
+        do
+            echo -e ".\c"
+            sleep 1
+            is_exist
+            if [ -z "${PID}" ]; then
+                COUNT=0
+                echo "${APP_NAME} process stop"
+            fi
+        done
+    else
+        echo "There is not the process of ${APP_NAME}"
+    fi
+}
+
+# 重启进程函数
+restart(){
+    stop
+    start
+}
+
+# 查看进程状态
+status(){
+    is_exist
+    if [ $? -eq "0" ]; then
+        echo "${APP_NAME} is running, PID=${PID}"
+    else
+        echo "There is not the process of ${APP_NAME}"
+    fi
+}
+
+
+case $1 in
+"start")
+        start
+        ;;
+"stop")
+        stop
+        ;;
+"restart")
+        restart
+        ;;
+"status")
+       status
+        ;;
+    *)
+    usage
+    ;;
+esac
+exit 0

+ 28 - 0
app/bin/docker-build

@@ -0,0 +1,28 @@
+#!/bin/bash
+
+cd `dirname $0`
+cd ..
+
+# 定义应用组名
+group_name='springboot-parent'
+# 定义应用名称
+app_name='app'
+# 定义应用版本
+app_version='1.0-SNAPSHOT'
+# 定义应用环境
+profile_active='docker'
+echo '----copy jar----'
+docker stop ${app_name}
+echo '----stop container----'
+docker rm ${app_name}
+echo '----rm container----'
+docker rmi ${group_name}/${app_name}:${app_version}
+echo '----rm image----'
+# 打包编译docker镜像
+docker build -t ${group_name}/${app_name}:${app_version} .
+echo '----build image----'
+docker run -p 8080:8080 --name ${app_name} \
+-e 'spring.profiles.active'=${profile_active} \
+-e TZ="Asia/Shanghai" \
+-d ${group_name}/${app_name}:${app_version}
+echo '----start container----'

+ 1 - 1
app/src/main/resources/application-dev.yml

@@ -1,2 +1,2 @@
 server:
 server:
-  port: 90
+  port: 8080

+ 2 - 0
app/src/main/resources/application-docker.yml

@@ -0,0 +1,2 @@
+server:
+  port: 8080

+ 1 - 1
app/src/main/resources/application-prod.yml

@@ -1,2 +1,2 @@
 server:
 server:
-  port: 90
+  port: 8080

+ 1 - 1
app/src/main/resources/application.yml

@@ -2,4 +2,4 @@ spring:
   profiles:
   profiles:
     active: dev
     active: dev
 server:
 server:
-  port: 80
+  port: 8080