• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wfd0807
V2EX  ›  程序员

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

  •  
  •   wfd0807 · Jul 29, 2019 · 8046 views
    This topic created in 2664 days ago, the information mentioned may be changed or developed.

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

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

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

    Supplement 1  ·  Jul 29, 2019
    (又可以 APPEND 了,奇怪)

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

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

    docker 内部还是 java -jar

    不需要那么多骚操作
    huangmingyou
    huangmingyou
    Jul 29, 2019
    15
    docker+k8s
    或者 rpm ,deb 包管理方式用系统方式管理进程.
    至于说 java -jar low ,那很多买 10 多万的商业软件也这么执行的.
    EastLord
    EastLord
    Jul 29, 2019
    16
    spring boot 官方文档 专门有一章讲 部署应用程序
    cubecube
    cubecube
    Jul 29, 2019 via Android
    17
    请问程序执行,怎么才能不 low?靠意念启动
    wfd0807
    wfd0807
    OP
    Jul 29, 2019
    18
    为什么不能 APPEND ?
    lihongjie0209
    lihongjie0209
    Jul 29, 2019
    19
    @wfd0807 #10 没有别的运行方式, 哪怕你用 docker, 内部也是 java -jar 执行的, 只是封装了一下而已. 你可以问一下你的领导他有什么不 low 的解决方案, 我们也长长见识
    tmac6740
    tmac6740
    Jul 29, 2019 via iPhone
    20
    发布项目方式也有了鄙视链
    Michaelssss
    Michaelssss
    Jul 29, 2019
    21
    问题的核心是怎么解决 low 吧,很简单,替换 class 升级~拍黄片的标准做法
    wfd0807
    wfd0807
    OP
    Jul 29, 2019
    22
    感谢各位关注和肯定
    我现在单方面认为是对方表达不清楚,应该是说“裸运行程序,没有使用进程管理方式不好”
    palmers
    palmers
    Jul 29, 2019
    23
    不用在意他说的 如果指出了实际存在的问题 可以继续讨论 否则直接忽视就行了, 把时间浪费在无意义的事情上
    Trim21
    Trim21
    Jul 29, 2019 via Android
    24
    对方大概是觉得你们直接敲命令启动服务器太 low …
    wfd0807
    wfd0807
    OP
    Jul 29, 2019
    25
    @Trim21 那是运维的事情
    Aresxue
    Aresxue
    Jul 29, 2019
    26
    持续集成 Jenkins、容器虚拟化 Docker,docker 都上了 k8s 来一套
    weishu
    weishu
    Jul 29, 2019
    27
    用 systemd / supervisor / pm2,这样你的服务挂了之后会帮你自动重启
    ourslay
    ourslay
    Jul 29, 2019
    28
    nnnToTnnn
    nnnToTnnn
    Jul 30, 2019
    29
    e......mmmmm 一般都是上 ci 的,然后走流水线,这个要看你们运维了。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   925 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 21:41 · PVG 05:41 · LAX 13:41 · JFK 16:41
    ♥ Do have faith in what you're doing.