Springboot+Docker 自动化部署方案? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
night98
V2EX    Java

Springboot+Docker 自动化部署方案?

  •  
  •   night98 Mar 19, 2018 10944 views
    This topic created in 2963 days ago, the information mentioned may be changed or developed.

    最近新开的一个项目,基于 SpringBoot 开发。

    目前思路是基于 Docker 镜像运行,单台机器运行 2-3 个 Docker 应用,希望每次提交更新后从 Git 上自动拉取源码编译后关闭当前 Docker 容器,并运行新的 Docker 容器,然后 Nginx 自动更新配置实现自动化部署,现在想问问有没有什么比较好的方案解决这个问题,目前不知道该怎么下手做。用 Jenkins ? 还有就是 SpringBoot 端口随机,如何获取端口再写入到 Nginx 规则中?

    15 replies    2018-03-24 19:22:30 +08:00
    qfdk
        1
    qfdk  
    PRO
       Mar 19, 2018 via iPhone   1
    当然有啦 顺便安利个自己的 ui https://github.com/qfdk/EasyDockerWeb

    简单说 就是 Jenkins 获取事件 删除旧镜像 打包新镜像 然后 run 起来
    guojxx
       2
    guojxx  
       Mar 19, 2018
    我不是来回答的,我也是新手
    我想了解的是我现在写的 springboot 写的项目部署的话,直接用 jar 部署,配置 nginx 转发。跟你们说的搞 docker 部署差别在哪里,还有 docker 在这一方面体现什么优点。
    mikuazusa
        3
    mikuazusa  
       Mar 19, 2018
    当然 Jenkins 啦,用 git hook 绑定,然后写打包、部署自动化脚本,调试好了基本就能用。
    “ SpringBoot 端口随机” 这类问题用类似类似 pid 的端口信息文件记录起来,再用脚本处理 Nginx 规则应该就可以了。
    HuHui
        4
    HuHui  
       Mar 19, 2018
    jenkins 或者 gitlab runner 了解下
    Mogugugugu
        5
    Mogugugugu  
       Mar 19, 2018
    Jenkins 了解一下,Spring Boot 端口随机这是要求么?通过 Spring Boot 的配置文件指定一个固定端口不可以么? Spring boot 端口不必暴露给宿主机,使 nginx 和 Spring boot 在同一网络下,互相访问就可以。
    Solarest
        6
    Solarest  
       Mar 19, 2018
    项目配置好 Dockerfile 并选用一个镜像仓库,然后配置 Jenkins、Rancher 进行部署。
    retanoj
        7
    retanoj  
       Mar 19, 2018
    Rancher API
    Luckyray
        8
    Luckyray  
       Mar 19, 2018 via iPhone
    rancher pipeline 了解一下,很简单
    night98
        9
    night98  
    OP
       Mar 19, 2018
    @qfdk 谢谢大佬,这个工具我看看怎么用


    @mikuazusa ok,我试试看,另外想问一下内网 gitlab + 内网 jenkins 可以部署到外网服务器吗?


    @Mogugugugu 随机端口主要是用于动态扩容用,不过也可以修改 docker 映射到主机上的端口,目前遇到的主要问题是如何动态更新 nginx 的转发规则


    @Solarest 好的,正在看
    @retanoj 好的,正在看
    @Luckyray 好的,正在看
    JRay
        10
    JRay  
       Mar 19, 2018
    我是用的 Jenkins 设置好自动部署
    th00000
        11
    th00000  
       Mar 20, 2018
    jenkins pipeline 了解一下
    mikuazusa
        12
    mikuazusa  
       Mar 20, 2018
    @night98 你 Jenkins 部署在内网,外网开放 Jenkins 访问端口就看而已了,gitlab 没必要部署到外网啊。
    不知道你的问题是不是这个意思。
    night98
        13
    night98  
    OP
       Mar 20, 2018 via Android
    @mikuazusa 是的,但是问题是内网的映射端口,外网 ip 会不定期变化。
    mikuazusa
        14
    mikuazusa  
       Mar 20, 2018
    @night98 我理解这类问题就需要类似花生壳的动态域名解析来实现内网穿透了,这类解决方案有免费的也有付费的,你可以找下谷歌看下
    jack80342
        15
    jack80342  
       Mar 24, 2018   1
    这几天翻译了最新的 Spring Boot 2.0 的英文文档,欢迎 Fork,https://www.gitbook.com/book/jack80342/spring-boot/details
    About     Help     Advertise     Blog     API     FAQ     Solana     2645 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 60ms UTC 15:56 PVG 23:56 LAX 08:56 JFK 11:56
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86