千家信息网

Spring Boot的Docker打包插件有哪些区别

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容介绍了"Spring Boot的Docker打包插件有哪些区别"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读
千家信息网最后更新 2026年11月02日Spring Boot的Docker打包插件有哪些区别

本篇内容介绍了"Spring Boot的Docker打包插件有哪些区别"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Spring Boot Docker

在Spring Boot应用中,我们可以约定不同的标识来定义不同的环境。例如 dev 表示开发环境、test表示测试环境,对应的配置文件为application-dev.yaml、application-test.yaml。我们通过声明spring.profiles.active来激活对应的环境配置,例如激活dev环境时spring.profiles.active=dev。完整的启动命令为:

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

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

# 引入 openjdk 镜像 FROM adoptopenjdk/openjdk8 # 声明作者 LABEL AUTHOR=felord OG=felord.cn # 挂载几个有用的文件夹 比如日志 VOLUME ["/tmp","/logs"] # 声明一个环境参数用来动态启用配置文件 默认dev ENV ACTIVE=dev # 暴露端口 EXPOSE 8080 # 复制并修改应用打包后的jar文件名称 ADD /target/flyway-spring-boot-1.0.0.jar app.jar # 容器启动时第一个运行的命令 用来启动应用 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Dspring.profiles.active=${ACTIVE}","-jar","app.jar"]

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

docker 镜像生命周期

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

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        https://docker.repo.com/v1/        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环境,而且支持分层构建、镜像瘦身,上手容易;缺点是定制化比较困难。

"Spring Boot的Docker打包插件有哪些区别"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

环境 镜像 插件 配置 命令 文件 应用 可以通过 就是 不同 仓库 内容 动态 官方 工具 情况 更多 激活 知识 缺点 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网通讯科技 麻工互联网科技 互联网科技公司发展 奔汉互联网科技 深圳艾佳互联网科技 北京三清互联网科技 华服互联网科技官网 互联网科技有哪些公司 成都铂石互联网科技做什么的 港股科技和互联网 世界互联网科技公司市值排名 黑科技闪耀互联网之光 黑科技 体验场景 互联网大会 梅州GM互联网络科技有限公司 宁波跨境商互联网科技有限公司 普陀区互联网教育科技管理办法 互联网科技博主张洲 科技互联网专业工作会议发言稿 平安好医生打造互联网科技医疗 科技互联网专业务虚会材料 亿人帮互联网科技有限公司 科技金融是不是互联网金融 A股互联网金融科技公司 互联网金融科技委员会 左右互联网络科技 岳阳华臻互联网科技有限公司 南博望互联网科技有限公司 互联网领先科技宣传片 新氧科技和美国互联网有关系吗 兰石爱特工业互联网科技分公司
0