5

请教一下,大家如何部署 springboot 后端程序,请给出您的建议。ありがとうございます...

 1 year ago
source link: https://www.v2ex.com/t/937205
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  Java

请教一下,大家如何部署 springboot 后端程序,请给出您的建议。ありがとうございます。

  mengjisang · 3 小时 25 分钟前 · 1396 次点击

,我知道可以 java -jar xxx.jar 跑程序,但是感觉太散装了,tmux 方便调试,却不是合理的运维方式

27 条回复    2023-05-04 15:54:47 +08:00
nba2k9

nba2k9      3 小时 20 分钟前

这个主题为什么会有一个 [散装] 的标签
xhldtc

xhldtc      3 小时 19 分钟前

看你部署环境,一般虚拟机就是 java -jar 启动跑的,还能怎么跑。如果是 k8s 环境的话就是打包成容器镜像再部署。看看官网的 prod 环境部署最佳实践吧
zliea

zliea      3 小时 11 分钟前

1. nohup+java -jar
2. 模拟写一个 systemd 的 service 文件
3. docker
FreeEx

FreeEx      3 小时 8 分钟前

建议使用系统服务的方式启动,这样挂了自动拉起,开机自启动啥的都搞定了。
voidmnwzp

voidmnwzp      3 小时 7 分钟前 via iPhone

?日本人?
imzhoukunqiang

imzhoukunqiang      3 小时 5 分钟前 via Android

宿主机启动,service 启动,docker 启动最后本质不都是 Java -jar 吗,除非你打成 native 包
deadlyn

deadlyn      3 小时 5 分钟前

部署 VM 一般就打包:
1 、整个 jar
2 、利用诸如 assembly 打包成 zip ,分离自己的业务 jar 、三方 sdk 、外置资源配置(后续根据变动情况,可仅替换变动的部分,如常变动的业务 jar )

容器化部署:打包成 image

按需编写启动的 shell 脚本
iloveayu

iloveayu      3 小时 2 分钟前   ❤️ 1

@nba2k9 因为楼主的日语是散装的。
sensuzu

sensuzu      2 小时 56 分钟前

日本人???
LeegoYih

LeegoYih      2 小时 54 分钟前

# Dockerfile

FROM openjdk
COPY *.jar /app.jar
EXPOSE 8080
ENTRYPOINT ["sh","-c","java -Dspring.profiles.active=prod -jar /app.jar"]
siweipancc

siweipancc      2 小时 43 分钟前 via iPhone   ❤️ 1

包它哥一百层,启动参数还是土的一行,要不转行销售吧
blankmiss

blankmiss      2 小时 41 分钟前

你是霓虹人🐎 为什么不用 docker 部署
superedlimited

superedlimited      2 小时 39 分钟前 via iPhone

我竟然看懂了前面的阿里嘎多😹
salmon5

salmon5      2 小时 25 分钟前

vm 部署:java -jar test.jar ,通过 supervisor 或者 systemd 包一层也行
容器部署:打包成容器镜像
就这 2 种方式
mengjisang

mengjisang      2 小时 23 分钟前

谢谢大家的建议,OP 颇受启发
cslive

cslive      2 小时 13 分钟前

tomcat
SuperShuYe

SuperShuYe      2 小时 6 分钟前

from chatgpt
当您部署 SpringBoot 后端程序时,以下是一些建议:

使用开发环境中的配置文件 - SpringBoot 包含了一些内置的配置文件,可以方便开发者对基础配置项进行设置,例如 application.properties 或者 application.yaml 这些文件。其中,application.properties 支持 key-value 键值对的方式,并且是默认使用的配置文件。如果您需要更复杂的配置,可以使用 application.yaml ,这是使用 YAML 文件格式的配置文件。

在生产环境中使用外部配置文件 - 要部署 SpringBoot 应用程序到生产环境中,可以使用外部配置文件来配置应用程序的选项。这样可以更方便地进行部署和更新操作,因为外部配置文件可以在应用程序启动之前进行更改。

使用系统变量来配置应用程序 - 很多应用程序的配置选项是可以通过系统变量进行配置的。这样可以更方便地进行修改和部署,同时也可以避免一些机密信息暴露在配置文件中。

使用 Docker 部署 - Docker 是一个流行的容器化平台,可以帮助您更轻松地进行部署和管理。使用 Docker 部署 SpringBoot 应用程序可以帮助您在不同环境中保持应用程序的稳定性和可靠性。

使用自动化工具进行持续集成和部署 - 自动化工具可以帮助您更快速地进行持续集成和部署。一些流行的自动化工具包括 Jenkins 、CircleCI 和 Travis CI 等。这些工具可以帮助您自动化构建、测试和部署应用程序,以及自动化修改和合并代码。

希望以上建议能帮助您更好地部署 SpringBoot 后端程序。
clf

clf      1 小时 45 分钟前

docker 本质是打包成 jar

我们会用 jib 来打包上传 docker 镜像。
cheng6563

cheng6563      1 小时 31 分钟前

不还是老办法老办法,docker ,systemd ,service 啊。
zhiyu1998

zhiyu1998      1 小时 27 分钟前

@superedlimited #14 阿里嘎多 3Q 思密达,我太喜欢白嫖了
deorth

deorth      1 小时 11 分钟前 via Android

君日本語本当上手
mengjisang

mengjisang      53 分钟前

@deorth 君の日本語は上手ですね
mengjisang

mengjisang      50 分钟前

@hengyunabc 谢谢老哥,这是我一直以来忽略的官方文档
shanghai1943

shanghai1943      43 分钟前

java service wrapper. 也是你们日本人开发的。
Arumoh

Arumoh      32 分钟前

直接写了个脚本管理部署、更新、运行、回滚

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK