美文网首页程序员
还在使用第三方Docker插件?SpringBoot官方插件真香

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

作者: 阿里高级码农 | 来源:发表于2020-12-07 12:20 被阅读0次

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

    第三方插件使用

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

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

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

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

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

    官方插件使用

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

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

    [root@linux-local ~]# docker ps

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

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

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

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

    mvn spring-boot:build-image

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

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

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

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

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

    总结

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

    项目源码地址

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

    相关文章

      网友评论

        本文标题:还在使用第三方Docker插件?SpringBoot官方插件真香

        本文链接:https://www.haomeiwen.com/subject/tagzwktx.html