SpringBoot应用安装部署

Spring Boot应用部署文档

  1. 创建文件夹
mkdir -p /application

  1. 将打包好的应用上传到 /application 目录, 然后编写shell脚本

比如打包生成的是 bjgyol-gateway.jar 包, 需要编写一个 bjgyol-gateway.sh 脚本。注意 /data/application/logs/ 需要在应用中配置

```shell
#!/bin/bash

DATE=$(date +%Y-%m-%d)
JAVA_HOME=/usr/local/jdk1.8.0_261
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
# 应用所在目录
DIR=/application/
# 应用日志所在目录
LOGDIR=/data/application/logs/
# 日志文件名
LOGFILE=bjgyol-gateway
# 启动Jar包名称
JARFILE=bjgyol-gateway.jar
# Jar全路径
JARPATH=$DIR/bjgyol-gateway.jar
# 加密文件全路径
ENCRYPT_FILE_PATH=$DIR/secret/JasyptSecretKey.yml
# GC日志信息
GC_LOG_FILE_PATH=$LOGDIR/application/gc/
cd $DIR
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9

nohup java -javaagent:/application/skywalking-agent/skywalking-agent.jar \
-Dskywalking.trace.ignore_path=/actuator/** \
-Dskywalking.agent.service_name=bjgyol-gateway \
-Dskywalking.collector.backend_service=192.159.51.13:11800 \
-jar -Dspring.profiles.active=prod $JARPATH \
--spring.config.additional-location=$ENCRYPT_FILE_PATH \
-XX:MetaspaceSize=256m \
-XX:MaxMetaspaceSize=256m \
-Xms4096m \
-Xmx4096m \
-Xmn256m \
-Xss256k \
-XX:SurvivorRatio=8 \
-XX:+PrintGCTimeStamps \
-XX:+PrintGCDetails \
-XX:+PrintClassHistogram \
-Xloggc:$GC_LOG_FILE/$LOGFILE-$DATE.log >/dev/null 2>&1 & 
```

  1. 脚本编写完成后,赋予脚本可执行权限
    chmod +x bjgyol-gateway.sh
    

  1. 启动应用
    ./bjgyol-gateway.sh
    

  1. 配置日志自动清理

编写shell脚本, /data/log_rotate.sh

```shell
#!/bin/bash

# 初始化
LOGS_PATH=/data/application/logs/application

for file in $LOGS_PATH/*
do
    if test -f $file
    then
        echo $file
        #find $file -mtime +15 -name '*[0-9]*-[0-9]*-[0-9]*' | xargs rm -f
    else
        find $file -mtime +15 -name '*[0-9]*-[0-9]*-[0-9]*' | xargs rm -f
    fi
done

exit 0
```

  1. 添加脚本到 crontab 中, 每晚 00:00 自动执行, 清理 15 天之前的日志记录
    # 执行
    crontab -e
    # 输入
    1 0 * * * /data/log_rotate.sh
    

  1. 历史版本备份到 /application/old/ 目录, 添加备份日期, 比如 /application/old/bjgyol-gateway-2021-07-13.jar


感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。

页面内容