Commit 9d934c6b authored by 李欣峰's avatar 李欣峰

<dev>

parent 2f5ada9a
Pipeline #35396 passed with stages
in 1 minute and 18 seconds
<!--
~ Copyright (c) 2017. Tencent BlueKing
打包描述文件,以下内容不要修改
-->
<assembly>
<id>bin</id>
<formats>
<format>${pkg.format}</format>
</formats>
<fileSets>
<!-- ============ 以下内容不要修改 ============ -->
<fileSet>
<directory>${project.build.scriptSourceDirectory}</directory>
<outputDirectory/>
</fileSet>
<!-- ============ 将war 包一并打进 不要修改 ============ -->
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>${file.separator}</outputDirectory>
<includes>
<include>${pkg.app.id}-exec.war</include>
</includes>
</fileSet>
<fileSet>
<directory>src/main/webapp/static</directory>
<outputDirectory>${file.separator}static</outputDirectory>
</fileSet>
<fileSet>
<directory>package/scripts</directory>
<outputDirectory>${file.separator}bin</outputDirectory>
<fileMode>0755</fileMode>
</fileSet>
<!-- 打包环境变量配置文件 -->
<fileSet>
<directory>package/env</directory>
<outputDirectory>${file.separator}</outputDirectory>
<fileMode>0755</fileMode>
<includes>
<include>.env</include>
</includes>
</fileSet>
<!-- 打包项目配置文件 -->
<fileSet>
<directory>src/main/resources</directory>
<outputDirectory>${file.separator}config</outputDirectory>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<directory>package</directory>
<outputDirectory>${file.separator}</outputDirectory>
<includes>
<!-- 应用的logo -->
<include>${pkg.app.id}.png</include>
<!-- smart 应用 描述文件 -->
<include>app.yml</include>
</includes>
</fileSet>
</fileSets>
</assembly>
#!/usr/bin/env bash
# vim:ft=sh
#-------------------------------------------------------------------------------------------------------------
#该脚本的使用方式为-->[sh app.sh start|stop|status|restart|watch]
#注意对此文件做任何修改都无法影响到测试和生产环境,在系统部署环境时会还原,仅限于用户在本地部署使用。
#-------------------------------------------------------------------------------------------------------------
if [ ! -n "$JAVA_HOME" ]; then
export JAVA_HOME="/usr/java/default"
fi
#
#-------------------------------------------------------------------------------------------------------------
# 系统运行参数 运行环境: JDK_1.8+
#-------------------------------------------------------------------------------------------------------------
# 公共参数,不要修改
APP_ID=icube
APP_BIN=$(cd "$(dirname "$0")"; pwd)
APP_HOME=$(cd "$(dirname "$0")"/..; pwd)
SHELL_FILE_NAME=${0##*/}
CLASSPATH=$APP_HOME/config/
#这个是固定的,一定是spring-boot的类
APP_MAIN=org.springframework.boot.loader.WarLauncher
# 这个是PaaS在部署你的app时,会从服务器中读取系统环境变量APP_ID,代表你的APP_ID,不用修改,如果本地运行这脚本可能需要修改
# 打包后的Flat war文件
WAR_FILE=${APP_HOME}/$APP_ID-exec.war
# 定时检测任务配置内容
WATCH_JOB="* * * * * export INSTALL_PATH=$APP_HOME; $APP_BIN/$SHELL_FILE_NAME watch >/dev/null 2>&1"
NOHUPLOG=/dev/null
#NOHUPLOG=nohup.out
#加载系统配置参数到环境变量
ENV_FILE=$APP_HOME/.env
BACKUP_ENV=$APP_HOME/.env_bak
##保存环境变量
env|grep "`cat $ENV_FILE|grep "^export.*="|awk -F "export " '{print$2}'|awk -F "=" '{print$1"="}'`">$BACKUP_ENV
sed -i "s|'^(.*)='|'^export $1='|g" $BACKUP_ENV
##加载
source $ENV_FILE
#-------------------------------------------------------------------------------------------------------------
# 程序开始
#-------------------------------------------------------------------------------------------------------------
PID=0
_get_pid(){
javaps=`$JAVA_HOME/bin/jps -l | grep "${WAR_FILE}"`
if [ -n "$javaps" ]; then
PID=`echo $javaps | awk '{print $1}'`
else
PID=0
fi
}
# Docker 容器下的运行方式
_docker() {
_get_pid
if [ $PID -ne 0 ]; then
echo "================================================================================================================"
echo "$APP_ID already started(PID=$PID)"
echo "================================================================================================================"
else
#恢复环境变量的原始参数
source $BACKUP_ENV
# 内存大小 由系统环境变量 APP_JAVA_OPTS 配置。
JAVA_OPTS="-server -Dfile.encoding=UTF-8"
# $APP_JAVA_OPTS
# JAVA_OPTS="$JAVA_OPTS -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:MaxGCPauseMillis=850"
# JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Xloggc:gc_icube.log"
# JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
$JAVA_HOME/bin/java $JAVA_OPTS -Xbootclasspath/a:$CLASSPATH -jar $WAR_FILE 2>&1
fi
}
_startup(){
_get_pid
echo "================================================================================================================"
if [ $PID -ne 0 ]; then
echo "$APP_ID already started(PID=$PID)"
echo "================================================================================================================"
else
echo -n "Starting $APP_ID"
# 内存配置
JAVA_OPTS="$JAVA_OPTS -Xms1g -Xmx1g"
JAVA_OPTS="$JAVA_OPTS -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:MaxGCPauseMillis=850"
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -Xloggc:gc_icube.log"
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
JAVA_OPTS="$JAVA_OPTS -server -Dfile.encoding=UTF-8"
nohup $JAVA_HOME/bin/java $JAVA_OPTS -Xbootclasspath/a:$CLASSPATH -jar $WAR_FILE > $NOHUPLOG 2>&1 &
for i in $(seq 5)
do
sleep 0.8
echo -e ".\c"
done
_get_pid
if [ $PID -ne 0 ]; then
echo "(PID=$PID)...[Success]"
_add_crontab
echo "================================================================================================================"
else
echo "[Failed]"
echo "================================================================================================================"
exit 1
fi
fi
}
_shutdown(){
kill_signal=$1
_get_pid
echo "================================================================================================================"
if [ $PID -ne 0 ]; then
echo -n "Stopping $APP_ID(PID=$PID)..."
kill ${kill_signal} $PID
if [ $? -ne 0 ]; then
echo "[Failed]"
echo "================================================================================================================"
exit 1
#break
fi
for i in $(seq 50)
do
sleep 0.9
_get_pid
if [ $PID -eq 0 ]; then
break
fi
echo -e ".\c"
done
_get_pid
if [ $PID -eq 0 ]; then
echo "[Success]"
_delete_crontab
echo "================================================================================================================"
else
echo "[Failed]"
echo "================================================================================================================"
exit 1
fi
else
echo "$APP_ID is not running"
echo "================================================================================================================"
fi
}
_status(){
_get_pid
echo "================================================================================================================"
if [ $PID -ne 0 ]; then
echo "$APP_ID is running(PID=$PID)"
echo "================================================================================================================"
else
echo "$APP_ID is not running"
echo "================================================================================================================"
fi
}
_watch(){
_get_pid
if [ $PID -ne 0 ]; then
echo "$APP_ID is running"
else
_startup
fi
}
_add_crontab(){
# 添加进程检测的定时任务
(crontab -l | grep -v "$WATCH_JOB"; echo "$WATCH_JOB") | crontab -
}
_delete_crontab(){
# 删除进程检测的定时任务
(crontab -l | grep -v "$WATCH_JOB") | crontab -
}
_restart(){
_shutdown $1
sleep 1
_startup
}
#-------------------------------------------------------------------------------------------------------------
# 命令参数
#-------------------------------------------------------------------------------------------------------------
case "$1" in
docker)
_docker
;;
watch)
_watch
;;
restart)
_restart
;;
start)
_startup
;;
stop)
_shutdown
;;
status)
_status
;;
forceStop)
_shutdown "-9"
;;
forceRestart)
_restart "-9"
;;
*)
echo $"Usage: $SHELL_FILE_NAME {start|stop|status|restart|watch|docker}"
esac
\ No newline at end of file
......@@ -16,7 +16,7 @@
<!-- 发布的输出格式 -->
<pkg.format>tar.gz</pkg.format>
<!-- 最终出包将以APP_ID作为标识命名 -->
<pkg.app.id>api-service</pkg.app.id>
<pkg.app.id>api-service-gateway</pkg.app.id>
<!-- 此处修改为你的SpringBoot 启动类,也可直接用默认的 -->
<mainClass>com.zorkdata.apiservice.gateway.ApiServiceGatewayApplication</mainClass>
</properties>
......
  • SonarQube analysis reported 5 issues

    • 1 major
    • 🔽 4 minor

    Note: The following issues were found on lines that were not modified in the commit. Because these issues can't be reported as line comments, they are summarized here:

    1. Add a private constructor to hide the implicit public one. 📘
    2. 🔽 Remove this unused import 'org.springframework.context.ApplicationContext'. 📘
    3. 🔽 Remove this unused import 'java.util.Map'. 📘
    4. 🔽 Remove this unused import 'javax.validation.Valid'. 📘
    5. 🔽 Make this member "protected". 📘
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment