springboot容器化打包部署_Springboot基于assembly的服务化打包方案

在使用assembly来打包springboot微服务项目前,我想说一说,目前springboot项目的几种常见的部署方式。

使用docker容器去部署,将springboot的应用构建成一个docker image,然后通过容器去启动镜像 ,这种方式在需要部署大规模的应用和应用扩展时是非常方便的,属于目前工业级的部署方案,但是需要掌握docker的生态圈技术。

使用fatjar直接部署启动,这是很多初学者或者极小规模情况下的一个简单应用部署方式。

本文主要针对第二种部署方式提供一种更加友好的打包方案,是部署管理更加轻松,第一种方式可能未来我会在自己博客中写。

一、为什么要将springboot服务化打包 ?

最近我看到一个项目团队,他们在采用springboot开发完项目构建交互给运维团队就是一个spring boot 的fatjar。而且这种原始打出的包在传统型项目开发公司,对于运维人员来说无疑是很致命的,项目交付后整个配置文件都被隐藏到打成的jar中,针对不同的环境修改配置文件就变成了一件很困难的事情。因此,我们在公司引入任何新技术时,一定要考虑怎么去做服务化和工程化,如果仅仅引用技术框架,很多时候可能只需要加入几个依赖,看下api写几行代码就能跑起来。

针对上面的这种问题,要去做服务化和工程化,大致要解决两点问题:

让springboot能够加载jar外的配置文件。

提供一个服务化的启动脚本,这个脚本一般是shell或者windows下的bat ,有了springboot的应用服务脚本后,就可以很容易的去启动和停止springboot的应用了。

二、打包后的springboot应用结构图

这里先来看下使用assembly将springboot服务化打包后的效果图。

三、服务化打包重要步骤

下面是打包springboot的详细步骤。

3.1 加入assembly打包插件

maven-assembly-plugin

3.0.0

src/main/assembly/assembly.xml

make-assembly

package

single

从上面代码看出了我把assembly的配置放在main目录下,这个是习惯,可以不放这里也可以,下面就是一个assembly在项目中的大致结构图:

3.2 assembly.xml配置

assembly的配置不同的应用和下面配置也差不多,无非就是打包服务脚本、jar、配置文件等。从下面的代码中config配置就会发现, assembly将配置文件打到了config下。

1.0

tar.gz

src/main/assembly/bin

bin

0755

src/main/assembly/config

config

0644

target

lib

*.jar

src/main/resources

logs

0755

**/*

3.3 编写服务脚本

现在写linux环境的脚本。

第一个:start.sh启动脚本

#!/bi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值