Spring Boot的 Docker打包插件哪个好用

网友投稿 224 2022-10-21

Spring Boot的 Docker打包插件哪个好用

最近公司的应用准备容器化,因为几十个应用从测试到发布太麻烦了,而且还会因为环境的因素导致部署中出现各种问题。为了在开发、测试、生产都能保持一致的环境,就引进了容器技术,先拿边缘的项目试试水,积累下经验,今天对几种常见的Spring Boot Docker打包工具进行了简单总结。

Spring Boot Docker

java -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=dev -jar spring-boot-app.jar

根据上面的命令编写一个能够适应多环境的​Dockerfile​:

这样打包的Docker镜像就可以通过​​docker run​​​添加额外的​​--env ACTIVE=test​​ 来动态的改变环境。单纯的编写​Dockerfile​不方便我们DevOps。

我们需要能够自动地构建、推送到仓库、拉取镜像、运行一系列流水线操作。好在市面上有很多工具来帮助我们实现这一过程。

spring-boot-maven-plugin

这个是Spring Boot官方的插件,在2.x的某个版本提供了Docker镜像构建能力。

org.springframework.boot spring-boot-maven-plugin docker.repo.com/library/${project.artifactId}:${project.version} true user secret user@example.com

配置好Docker私仓后就可以通过​​mvn clean spring-boot:build-image​​ 进行构建镜像了。

❝ 这种方式好处就是无额外依赖,缺点就是需要从github下载构建元件,网络如果不好就容易失败。

Spotify Maven Plugin

Spotify Maven 插件是一个目前比较普遍的选择。它要求应用程序开发人员编写​Dockerfile​,并把​​Dockerfile​​​放在项目​​src/main/docker​​目录下。然后你就可以通过引入:

com.spotify dockerfile-maven-plugin 1.4.8 repo.com/${project.artifactId}

这个插件提供了​​mvn dockerfile:build​​​、​​mvn dockerfile:tag​​​、​​mvn dockerfile:push​​三个命令分别用来构建、打标签、发布到远端私有仓库,非常简单。

❝ 这个是一个非常容易上手的插件,唯一的要求就是需要会编写Dockerfile,对定制化要求高的可以使用这个。

Jib Maven Plugin

这个曾经我在早些时候的​​一篇文章​​中已经介绍过了,可以详细了解一下。它是谷歌开源的OCI镜像打包工具,可以用来打包Docker镜像,大部分情况下已经满足需要。但是如果你要定制化的话还是不容易的,需要阅读官方给的文档。最开始的​Dockerfile​如果使用​JIb​的话需要这样配置:

com.google.cloud.tools jib-maven-plugin 3.0.0 adoptopenjdk/openjdk8 docker.repo.com/library/${project.artifactId} felord xxxxxx ${project.version} target/${project.artifactId}-${project.version}.jar *.jar /app.jar packaged /tmp,/logs 8080 dev java,-Djava.security.egd=file:/dev/./urandom,-Dspring.profiles.active=${active},-jar,/app.jar USE_CURRENT_TIMESTAMP

❝ 优点是不需要本地Docker环境,而且支持分层构建、镜像瘦身,上手容易;缺点是定制化比较困难。

​​​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:RabbitMQ,RocketMQ,Kafka 事务性,消息丢失,消息顺序性和消息重复发送的处理策略问题
下一篇:D006 复制粘贴玩大数据之Dockerfile安装HBase集群
相关文章

 发表评论

暂时没有评论,来抢沙发吧~