还在使用第三方Docker插件?SpringBoot官方插件真香!

为了方便为SpringBoot应用构建Docker镜像,我们经常会使用Maven插件来打包镜像。之前一直使用的是第三方插件,有spotify和fabric8出品的两种docker-maven-plugin。最近SpringBoot 2.4.0发布了,官方插件也增加了对Docker的支持,体验了一把发现也很好用,推荐给大家!

第三方插件使用

我们先了解下第三方插件的使用,方便和官方插件做对比

值得注意的是,在我们使用插件时,需要自己定义镜像构建过程,比如在pom.xml中使用如下配置,标签下的配置为镜像构建过程的配置;

还在使用第三方Docker插件?SpringBoot官方插件真香!_第1张图片

或者先在Dockerfile文件中定义好镜像构建过程;

还在使用第三方Docker插件?SpringBoot官方插件真香!_第2张图片

然后在插件中引用Dockerfile文件,用于构建镜像;

还在使用第三方Docker插件?SpringBoot官方插件真香!_第3张图片

其实对于SpringBoot应用来说,如何从应用Jar包构建Docker镜像,做法基本是差不多的,为什么非要自己定义镜像的构建过程呢?

官方插件使用

SpringBoot官方插件解决了上面的问题,无需自己编写Docker镜像构建过程,直接自动构建,是不是很方便!接下来我们来体验下它的强大之处!

由于我们需要把镜像推送到镜像仓库,首先我们安装好私有镜像仓库Registry和可视化镜像管理工具docker-registry-ui

[root@linux-local ~]# docker ps

还在使用第三方Docker插件?SpringBoot官方插件真香!_第4张图片

然后我们需要把应用的版本升级到SpringBoot 2.4.0,之前的版本Docker支持没有这个完善;

还在使用第三方Docker插件?SpringBoot官方插件真香!_第5张图片

然后修改pom.xml文件,对官方Maven插件进行配置,主要是对Docker相关功能进行配置;

还在使用第三方Docker插件?SpringBoot官方插件真香!_第6张图片

如果你使用的是IDEA的话,直接双击SpringBoot插件的build-image命令即可一键打包并推送到镜像仓库;

还在使用第三方Docker插件?SpringBoot官方插件真香!_第7张图片

也可以在命令行使用如下Maven命令来打包构建镜像;

mvn spring-boot:build-image

镜像构建过程中会输出如下信息,由于很多依赖会从Github上下载,网络不好的情况下会下载失败,多试几次就好:

还在使用第三方Docker插件?SpringBoot官方插件真香!_第8张图片

镜像构建成功后,可以从镜像仓库查看到我们的镜像:

还在使用第三方Docker插件?SpringBoot官方插件真香!_第9张图片

我们可以从Docker Registry UI中查看镜像仓库中的镜像,访问地址:http://192.168.3.101:8280/

还在使用第三方Docker插件?SpringBoot官方插件真香!_第10张图片

接着使用如下命令启动我们的SpringBoot应用:

还在使用第三方Docker插件?SpringBoot官方插件真香!_第11张图片

启动成功后,可以成功访问到SpringBoot应用的Swagger页面,访问地址:http://192.168.3.101:8080/swagger-ui.html

还在使用第三方Docker插件?SpringBoot官方插件真香!_第12张图片

总结

SpringBoot官方Maven插件避免了编写Docker镜像构建过程,同时充分利用了SpringBoot 2.3以后的Jar分层技术,但对于需要自定义构建镜像的场景造成了一定的麻烦。

项目源码地址

https://github.com/macrozheng/mall-learning/tree/master/mall-tiny-docker-plugin

你可能感兴趣的:(还在使用第三方Docker插件?SpringBoot官方插件真香!)