spring boot 项目打可运行 jar 包,发布到生产环境,使用 java -jar 方式启动,被世界上最好的语言出身的技术经理说太 low 了
没有任何感情色彩的提问,那么 high 的启动方式什么?
ps:发布脚本和目标服务器不绑定,因此没有使用系统服务的方式
1
BCy66drFCvk1Ou87 2019-07-29 17:17:27 +08:00
docker
|
2
lihongjie0209 2019-07-29 17:19:06 +08:00
systemd 托管或者是 screen/tmux 运行
|
3
LeeSeoung 2019-07-29 17:19:39 +08:00
jenkins+docker 自动化构建部署= =有能力再搞下 k8s 弹性伸缩。。
|
4
EastLord 2019-07-29 17:20:29 +08:00
run as a service
|
5
realpg 2019-07-29 17:21:28 +08:00
最次也得 systemd service 啊
|
6
2kCS5c0b0ITXE5k2 2019-07-29 17:22:21 +08:00
难道不 low 吗? 又在暗示 php...
|
7
airfling 2019-07-29 17:24:00 +08:00
我是打包成 war,反正也可以 java-jar 启动,也可以部署到 was 或者其他 web 服务器做集群,也可以用 docker 构建镜像启动
|
8
dreamusername 2019-07-29 17:24:56 +08:00 1
我的思路是:
1、注册为 systemd service,可以用 systemctl 启、停,以及开机启动 2、打包为 docker 文件,使用 docker 进行管理 这两种对 jar 包不会有任何内部的修改。 |
9
banmuyutian 2019-07-29 17:25:06 +08:00
gitlab+jenkins+docker 触发构建,我司目前是这样。。
|
10
wfd0807 OP @HuasLeung
@lihongjie0209 @LeeSeoung 感谢大佬们关注,无论是容器化,还是系统服务托管或者会话保持,运行方式始终是 java -jar 这个技术经理说“我问过外网,java -jar 的方式太 low 了” 我都开始怀疑人生了,难道 jar 包还有别的运行方式? ps:裸执行 jar 包是我们测试环境的启动方式,是运维照搬到了生产环境的 |
11
AngryPanda 2019-07-29 17:29:58 +08:00
的确蛮 low 的
|
12
hahaayaoyaoyao 2019-07-29 17:32:20 +08:00 via Android
@AngryPanda 来个高级的
|
14
gz911122 2019-07-29 17:33:07 +08:00
docker
docker 内部还是 java -jar 不需要那么多骚操作 |
15
huangmingyou 2019-07-29 17:33:10 +08:00
docker+k8s
或者 rpm ,deb 包管理方式用系统方式管理进程. 至于说 java -jar low ,那很多买 10 多万的商业软件也这么执行的. |
16
EastLord 2019-07-29 17:35:56 +08:00
spring boot 官方文档 专门有一章讲 部署应用程序
|
17
cubecube 2019-07-29 17:38:00 +08:00 via Android
请问程序执行,怎么才能不 low?靠意念启动
|
18
wfd0807 OP 为什么不能 APPEND ?
|
19
lihongjie0209 2019-07-29 17:40:53 +08:00
@wfd0807 #10 没有别的运行方式, 哪怕你用 docker, 内部也是 java -jar 执行的, 只是封装了一下而已. 你可以问一下你的领导他有什么不 low 的解决方案, 我们也长长见识
|
20
tmac6740 2019-07-29 17:41:12 +08:00 via iPhone
发布项目方式也有了鄙视链
|
21
Michaelssss 2019-07-29 17:41:22 +08:00
问题的核心是怎么解决 low 吧,很简单,替换 class 升级~拍黄片的标准做法
|
22
wfd0807 OP 感谢各位关注和肯定
我现在单方面认为是对方表达不清楚,应该是说“裸运行程序,没有使用进程管理方式不好” |
23
palmers 2019-07-29 17:42:48 +08:00
不用在意他说的 如果指出了实际存在的问题 可以继续讨论 否则直接忽视就行了, 把时间浪费在无意义的事情上
|
24
Trim21 2019-07-29 17:47:21 +08:00 via Android
对方大概是觉得你们直接敲命令启动服务器太 low …
|
26
Aresxue 2019-07-29 17:58:38 +08:00
持续集成 Jenkins、容器虚拟化 Docker,docker 都上了 k8s 来一套
|
27
weishu 2019-07-29 18:21:08 +08:00
用 systemd / supervisor / pm2,这样你的服务挂了之后会帮你自动重启
|
28
ourslay 2019-07-29 18:26:00 +08:00
https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html
官方文档附上。 不过还是觉得 docker 简单 |
29
nnnToTnnn 2019-07-30 16:59:44 +08:00
e......mmmmm 一般都是上 ci 的,然后走流水线,这个要看你们运维了。。。
|