生产环境发布 SpringBoot 项目的正确方式是什么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
wfd0807
V2EX    程序员

生产环境发布 SpringBoot 项目的正确方式是什么?

  •   wfd0807 2019-07-29 17:07:46 +08:00 7214 次点击
    这是一个创建于 2264 天前的主题,其中的信息可能已经有所发展或是发生改变。

    spring boot 项目打可运行 jar 包,发布到生产环境,使用 java -jar 方式启动,被世界上最好的语言出身的技术经理说太 low 了

    没有任何感情色彩的提问,那么 high 的启动方式什么?

    ps:发布脚本和目标服务器不绑定,因此没有使用系统服务的方式

    第 1 条附言    2019-07-29 17:45:27 +08:00
    (又可以 APPEND 了,奇怪)

    感谢各位关注和肯定
    我现在单方面认为是对方表达不清楚,应该是说“裸运行程序,没有使用进程管理方式不好”
    29 条回复    2019-07-30 16:59:44 +08:00
    BCy66drFCvk1Ou87
        1
    BCy66drFCvk1Ou87  
       2019-07-29 17:17:27 +08:00
    docker
    lihongjie0209
        2
    lihongjie0209  
       2019-07-29 17:19:06 +08:00
    systemd 托管或者是 screen/tmux 运行
    LeeSeoung
        3
    LeeSeoung  
       2019-07-29 17:19:39 +08:00
    jenkins+docker 自动化构建部署= =有能力再搞下 k8s 弹性伸缩。。
    EastLord
        4
    EastLord  
       2019-07-29 17:20:29 +08:00
    run as a service
    realpg
        5
    realpg  
    PRO
       2019-07-29 17:21:28 +08:00
    最次也得 systemd service 啊
    2kCS5c0b0ITXE5k2
        6
    2kCS5c0b0ITXE5k2  
       2019-07-29 17:22:21 +08:00
    难道不 low 吗? 又在暗示 php...
    airfling
        7
    airfling  
       2019-07-29 17:24:00 +08:00
    我是打包成 war,反正也可以 java-jar 启动,也可以部署到 was 或者其他 web 服务器做集群,也可以用 docker 构建镜像启动
    dreamusername
        8
    dreamusername  
       2019-07-29 17:24:56 +08:00   1
    我的思路是:
    1、注册为 systemd service,可以用 systemctl 启、停,以及开机启动
    2、打包为 docker 文件,使用 docker 进行管理
    这两种对 jar 包不会有任何内部的修改。
    banmuyutian
        9
    banmuyutian  
       2019-07-29 17:25:06 +08:00
    gitlab+jenkins+docker 触发构建,我司目前是这样。。
    wfd0807
        10
    wfd0807  
    OP
       2019-07-29 17:27:36 +08:00
    @HuasLeung
    @lihongjie0209
    @LeeSeoung
    感谢大佬们关注,无论是容器化,还是系统服务托管或者会话保持,运行方式始终是 java -jar
    这个技术经理说“我问过外网,java -jar 的方式太 low 了”
    我都开始怀疑人生了,难道 jar 包还有别的运行方式?

    ps:裸执行 jar 包是我们测试环境的启动方式,是运维照搬到了生产环境的
    AngryPanda
        11
    AngryPanda  
       2019-07-29 17:29:58 +08:00
    的确蛮 low 的
    hahaayaoyaoyao
        12
    hahaayaoyaoyao  
       2019-07-29 17:32:20 +08:00 via Android
    @AngryPanda 来个高级的
    pipixia
        13
    pipixia  
       2019-07-29 17:32:51 +08:00 via Android
    @wfd0807 springboot 官方示例就这种做法 官方也 low 了
    gz911122
       
    gz911122  
       2019-07-29 17:33:07 +08:00
    docker

    docker 内部还是 java -jar

    不需要那么多骚操作
    huangmingyou
        15
    huangmingyou  
       2019-07-29 17:33:10 +08:00
    docker+k8s
    或者 rpm ,deb 包管理方式用系统方式管理进程.
    至于说 java -jar low ,那很多买 10 多万的商业软件也这么执行的.
    EastLord
        16
    EastLord  
       2019-07-29 17:35:56 +08:00
    spring boot 官方文档 专门有一章讲 部署应用程序
    cubecube
        17
    cubecube  
       2019-07-29 17:38:00 +08:00 via Android
    请问程序执行,怎么才能不 low?靠意念启动
    wfd0807
        18
    wfd0807  
    OP
       2019-07-29 17:38:00 +08:00
    为什么不能 APPEND ?
    lihongjie0209
        19
    lihongjie0209  
       2019-07-29 17:40:53 +08:00
    @wfd0807 #10 没有别的运行方式, 哪怕你用 docker, 内部也是 java -jar 执行的, 只是封装了一下而已. 你可以问一下你的领导他有什么不 low 的解决方案, 我们也长长见识
    tmac6740
        20
    tmac6740  
       2019-07-29 17:41:12 +08:00 via iPhone
    发布项目方式也有了鄙视链
    Michaelssss
        21
    Michaelssss  
       2019-07-29 17:41:22 +08:00
    问题的核心是怎么解决 low 吧,很简单,替换 class 升级~拍黄片的标准做法
    wfd0807
        22
    wfd0807  
    OP
       2019-07-29 17:42:07 +08:00
    感谢各位关注和肯定
    我现在单方面认为是对方表达不清楚,应该是说“裸运行程序,没有使用进程管理方式不好”
    palmers
        23
    palmers  
       2019-07-29 17:42:48 +08:00
    不用在意他说的 如果指出了实际存在的问题 可以继续讨论 否则直接忽视就行了, 把时间浪费在无意义的事情上
    Trim21
        24
    Trim21  
       2019-07-29 17:47:21 +08:00 via Android
    对方大概是觉得你们直接敲命令启动服务器太 low …
    wfd0807
        25
    wfd0807  
    OP
       2019-07-29 17:52:52 +08:00
    @Trim21 那是运维的事情
    Aresxue
        26
    Aresxue  
       2019-07-29 17:58:38 +08:00
    持续集成 Jenkins、容器虚拟化 Docker,docker 都上了 k8s 来一套
    weishu
        27
    weishu  
       2019-07-29 18:21:08 +08:00
    用 systemd / supervisor / pm2,这样你的服务挂了之后会帮你自动重启
    ourslay
        28
    ourslay  
       2019-07-29 18:26:00 +08:00
    nnnToTnnn
        29
    nnnToTnnn  
       2019-07-30 16:59:44 +08:00
    e......mmmmm 一般都是上 ci 的,然后走流水线,这个要看你们运维了。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1069 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 17:48 PVG 01:48 LAX 10:48 JFK 13:48
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86