最近新开的一个项目,基于 SpringBoot 开发。
目前思路是基于 Docker 镜像运行,单台机器运行 2-3 个 Docker 应用,希望每次提交更新后从 Git 上自动拉取源码编译后关闭当前 Docker 容器,并运行新的 Docker 容器,然后 Nginx 自动更新配置实现自动化部署,现在想问问有没有什么比较好的方案解决这个问题,目前不知道该怎么下手做。用 Jenkins ? 还有就是 SpringBoot 端口随机,如何获取端口再写入到 Nginx 规则中?
1
qfdk 2018-03-19 14:51:35 +08:00 via iPhone 1
|
2
guojxx 2018-03-19 14:53:20 +08:00
我不是来回答的,我也是新手
我想了解的是我现在写的 springboot 写的项目部署的话,直接用 jar 部署,配置 nginx 转发。跟你们说的搞 docker 部署差别在哪里,还有 docker 在这一方面体现什么优点。 |
3
mikuazusa 2018-03-19 14:56:33 +08:00
当然 Jenkins 啦,用 git hook 绑定,然后写打包、部署自动化脚本,调试好了基本就能用。
“ SpringBoot 端口随机” 这类问题用类似类似 pid 的端口信息文件记录起来,再用脚本处理 Nginx 规则应该就可以了。 |
4
HuHui 2018-03-19 15:02:07 +08:00
jenkins 或者 gitlab runner 了解下
|
5
Mogugugugu 2018-03-19 15:19:22 +08:00
Jenkins 了解一下,Spring Boot 端口随机这是要求么?通过 Spring Boot 的配置文件指定一个固定端口不可以么? Spring boot 端口不必暴露给宿主机,使 nginx 和 Spring boot 在同一网络下,互相访问就可以。
|
6
Solarest 2018-03-19 15:20:00 +08:00
项目配置好 Dockerfile 并选用一个镜像仓库,然后配置 Jenkins、Rancher 进行部署。
|
7
retanoj 2018-03-19 16:09:22 +08:00
Rancher API
|
8
Luckyray 2018-03-19 16:40:45 +08:00 via iPhone
rancher pipeline 了解一下,很简单
|
9
night98 OP |
10
JRay 2018-03-19 23:33:35 +08:00
我是用的 Jenkins 设置好自动部署
|
11
th00000 2018-03-20 10:11:34 +08:00
jenkins pipeline 了解一下
|
12
mikuazusa 2018-03-20 10:31:50 +08:00
@night98 你 Jenkins 部署在内网,外网开放 Jenkins 访问端口就看而已了,gitlab 没必要部署到外网啊。
不知道你的问题是不是这个意思。 |
14
mikuazusa 2018-03-20 11:16:56 +08:00
@night98 我理解这类问题就需要类似花生壳的动态域名解析来实现内网穿透了,这类解决方案有免费的也有付费的,你可以找下谷歌看下
|
15
jack80342 2018-03-24 19:22:30 +08:00 1
这几天翻译了最新的 Spring Boot 2.0 的英文文档,欢迎 Fork,https://www.gitbook.com/book/jack80342/spring-boot/details
|