全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
12
返回列表 发新帖
楼主: akatom
打印 上一主题 下一主题

服务器部署springboot应用的最佳实践

[复制链接]
11#
发表于 2022-6-2 09:45:19 | 只看该作者
我就用nohup  怎么方便怎么用
12#
发表于 2022-6-2 10:04:25 | 只看该作者
我也用nohup
13#
 楼主| 发表于 2022-6-2 10:15:32 | 只看该作者
bopo520 发表于 2022-6-2 09:32
一个docker就可以了。

请问有简单的教程吗  有点docker基础
14#
发表于 2022-6-2 10:29:22 | 只看该作者
本帖最后由 落叶随风 于 2022-6-2 12:40 编辑

保存为sh,
启动方式 ./xxx.sh (start / stop /restart /status) springboot.jar

  1. #!/bin/bash
  2. # Author study
  3. ## UPDATE 2020-01-05
  4. version="1.0.1"

  5. appName=$2
  6. if [ -z $appName ];then
  7.     appName=`ls -t |grep .jar$ |head -n1`
  8. fi

  9. function start()
  10. {
  11.         count=`ps -ef |grep java|grep $appName|wc -l`
  12.         if [ $count != 0 ];then
  13.                 echo "Maybe $appName is running, please check it..."
  14.         else
  15.                 echo "The $appName is starting..."
  16.                 # 定义激活配置以及 启动参数
  17.                 nohup java -jar  ./$appName -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms512M -Xmx2G > /dev/null   2>&1 &
  18.                 echo "pid is $!"
  19.                 echo Start Successed!
  20.         fi
  21. }

  22. function stop()
  23. {
  24.         appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
  25.         if [ -z $appId ];then
  26.             echo "Maybe $appName not running, please check it..."
  27.         else
  28.         echo "The $appName is stopping..."
  29.         kill $appId
  30.         fi
  31. }

  32. function restart()
  33. {
  34.     # get release version
  35.     releaseApp=`ls -t |grep .jar$ |head -n1`
  36.    
  37.     # get last version
  38.     lastVersionApp=`ls -t |grep .jar$ |head -n2 |tail -n1`

  39.     appName=$lastVersionApp
  40.     stop
  41.     for i in {5..1}
  42.     do
  43.         echo -n "$i "
  44.         sleep 1
  45.     done
  46.     echo 0
  47.    
  48.     backup
  49.    
  50.     appName=$releaseApp
  51.     start
  52. }

  53. function backup()
  54. {
  55.     # get backup version
  56.     backupApp=`ls |grep -wv $releaseApp$ |grep .jar$`
  57.    
  58.     # create backup dir
  59.     if [ ! -d "backup" ];then
  60.         mkdir backup
  61.     fi
  62.    
  63.     # backup
  64.     for i in ${backupApp[@]}
  65.     do
  66.         echo "backup" $i
  67.         mv $i backup
  68.     done
  69. }

  70. function status()
  71. {
  72.     appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
  73.         if [ -z $appId ]
  74.         then
  75.             echo -e "\033[31m Not running \033[0m"
  76.         else
  77.             echo -e "\033[32m Running [$appId] \033[0m"
  78.         fi
  79. }


  80. function usage()
  81. {
  82.     echo "Usage: $0 {start|stop|restart|status|stop -f}"
  83.     echo "Example: $0 start"
  84.     exit 1
  85. }

  86. case $1 in
  87.         start)
  88.         start;;

  89.         stop)
  90.         stop;;
  91.        
  92.         restart)
  93.         restart;;
  94.        
  95.         status)
  96.         status;;
  97.        
  98.         *)
  99.         usage;;
  100. esac



复制代码
15#
发表于 2022-6-2 10:48:15 | 只看该作者
akatom 发表于 2022-6-2 10:15
请问有简单的教程吗  有点docker基础

pull 一个官网的image  吧jar放进去就可以了。 当然你也可以自己撸dockerfile
16#
 楼主| 发表于 2022-6-2 10:57:37 | 只看该作者
落叶随风 发表于 2022-6-2 10:29
保存为sh,
启动方式 ./xxx.sh (start / stop /restart /status) stringboot.jar

老哥666 这个有点硬核
17#
发表于 2022-6-2 11:05:50 | 只看该作者
不用容器就 用supervisor吧
随便一搜索就有教程 https://www.jianshu.com/p/0b9054b33db3
要是容器的话 不用k8s
就docker-compose 直接docker 也行
随便改改
dockerfile :
  1. FROM openjdk:8-jre-alpine
  2. ENV LANG en_US.UTF-8
  3. ENV TZ Asia/Shanghai
  4. ADD target/*.jar app.jar
  5. RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
  6. RUN apk add --update ttf-dejavu fontconfig
  7. ENTRYPOINT ["java", "-jar", "-Xms512m", "-Xmx512m", "-Dspring.profiles.active=test", "/app.jar"]
复制代码


docker-compose :
这玩意照着docker run 随便改改就行了 https://www.composerize.com/
我的有网络和日志配置 就不贴了 麻烦
18#
发表于 2022-6-2 11:08:31 | 只看该作者
如果说部署的人级别是你这种不会的人来干, jar包最快的,别搞那些花里花哨的,各位都是啥级别系统啊编排啥啊编排
19#
 楼主| 发表于 2022-6-2 19:50:17 | 只看该作者
endenny 发表于 2022-6-2 11:08
如果说部署的人级别是你这种不会的人来干, jar包最快的,别搞那些花里花哨的,各位都是啥级别系统啊编排啥啊 ...

好的哥
20#
发表于 2022-6-2 20:24:13 | 只看该作者
本帖最后由 Gin_Node 于 2022-6-2 20:30 编辑

github ci cd自动流水化作业 通过docker 进行部署即可
只要配置第一次 那么后面只需要将代码 从idea 把 dev分支合并到master分支即可
https://dnslin.com/2022/05/18/15.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-1-12 17:29 , Processed in 0.060740 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表