目前部署 spring boot 有没有什么更为简便的方法

2019-08-22 14:22:16 +08:00
 Perolong

我现在是将项目编译成 jar,然后上传到服务器,然后 nohup java -jar xx.jar &,不算麻烦,也不算简单,因为想要更新 spring boot 项目的代码,就需要重新编译,重新上传到服务器,kill pid 上一个 8080 的进程,再重新打一遍指令,比起 caddy 部署前端的 react 项目可以直接拉取 git 项目更新,还是繁琐了一些,唯一解就是自己写个 python 脚本么?

6082 次点击
所在节点    程序员
38 条回复
chendy
2019-08-22 14:26:10 +08:00
最简单就脚本搞定,最好再弄个 CI 自动跑
最复杂就 k8s (或者类似的东西) + CI 跑脚本搞定
Foxkeh
2019-08-22 14:28:50 +08:00
安装成系统服务
luozic
2019-08-22 14:29:00 +08:00
jenkins 开源的 还有闭源的 CI 工具,找一个抄一下跑,复杂点就是基于 CI+K8s+配置服务器 打镜像的方式玩部署。
RYAN0UP
2019-08-22 14:29:13 +08:00
可以用 pm2 管理
LeeSeoung
2019-08-22 14:32:10 +08:00
jenkins 或者自己写脚本 ssh 到远端机器部署,也可以上 docker,k8s 个人小型没必要上,维护工作量比较大。
skycitygalaxy
2019-08-22 14:32:35 +08:00
看你这个需求,建议使用 docker-compose,把 yaml 文件写代码里面,每次拉代码编译+部署
jorneyr
2019-08-22 14:32:54 +08:00
如果使用 Gradle 的话,可以看看这个插件 org.hidetake.ssh
GM
2019-08-22 14:34:59 +08:00
就你们现在的需求的话,直接编译成 war,上传到 tomcat 的 webapps 目录完事。
Perolong
2019-08-22 14:51:47 +08:00
@skycitygalaxy 好的我试试
KingPL
2019-08-22 14:58:27 +08:00
git 拉代码,docker 跑个 maven 编译,移动 jar,docker restart **java,单个项目目前这样玩
ClutchBear
2019-08-22 15:10:38 +08:00
jenkins 自动拉取编译和部署
然后自动执行 superviserctl restart springboot
fakeJas0n
2019-08-22 15:20:18 +08:00
@jorneyr #7 这个不错👍
yannxia
2019-08-22 15:28:39 +08:00
单机 docker,然后 docker stop && docker run,玩的花一点的就像楼上 @KingPL 挂载 Vol,然后 Restart
registerrr
2019-08-22 15:32:13 +08:00
跟你现在的部署方式一模一样…
lihongjie0209
2019-08-22 15:33:14 +08:00
可以使用 tmux 来替代 nohup, 上传 jar 包这个动作无法避免的, 只是看你上传到哪里, 如果你有 nexus 之类的私有仓库, 可以在本地直接 deploy 上去, 然后脚本 wget 就好了。


分享一个 tmux 脚本, 杀死之前的进程并重新启动

(tmux kill-session -t app || true) && tmux new-session -d -s app "java -Dlog4j.configuration=log4j-pro.properties -jar /opt/app.jar “”
xuanbg
2019-08-22 15:39:41 +08:00
自然是 Jenkins+docker,先 maven 打包,然后 docker build 制作镜像,push 到私有仓库后在服务器上面 run 就好了。
qwerthhusn
2019-08-22 15:41:51 +08:00
可以使用不打 jar 包的方式
qwerthhusn
2019-08-22 15:42:25 +08:00
这样如果想更新某个 class 或者某个文件,就不用重新打包浪费时间
kaiser1992
2019-08-22 15:54:33 +08:00
1.上传到 git 仓库;
2.脚本读取源码,然后 build;
3.运行
cyril4free
2019-08-22 16:07:42 +08:00
gitlab+CI/CD

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/594180

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX