栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Spring Boot 2.x系列【7】官网Maven插件打包Docker镜像

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot 2.x系列【7】官网Maven插件打包Docker镜像

有道无术,术尚可求,有术无道,止于术。

本系列Spring Boot版本2.7.0

文章目录
    • 前言
    • 1. 设置Docker 守护程序地址
    • 2. 编写POM
    • 3. 执行打包

前言

随着云原生技术的火热,Docker 、K8S等容器技术已经成为很多企业的不二选择,实际开发中,就需要将应用程序打包为镜像了,在Spring Boot 中一般都会使用Maven 插件来进行镜像打包。

在其他系列的博客中,也介绍过一些插件,比如:

  • K8S入门系列(10)-使用开源项目io.fabric8之docker-maven-plugin插件打包Docker镜像至私服
  • K8S入门系列(8)-Spring Boot使用jib打包Docker镜像至私服

以上两种插件的主要区别是一个需要写Dockerfile 文件,一个是直接将构建信息写在POM中。

Spring Boot 官文中对镜像打包功能描述为Packaging OCI Images`(打包为OCI 镜像)。

为了推进容器化技术的工业标准化,2015 年 6 月在 DockerCon 上 Linux 基金会与 Google,华为,惠普,IBM,Docker,Red Hat,VMware 等公司共同宣布成立开放容器项目(OCP),后更名为 OCI。它的主要目标便是 建立容器格式和运行时的工业开放通用标准。

所以 OCI就是一个规范,发展至今, OCI 制定的主要标准有三个分别是 runtime-spec 、image-spec 和 distribution-spec 这三个标准分别定义了容器运行时,容器镜像还有分发的规范。

Spring Boot 2.4 推出了自己的 docker 构建工具整合在原有的spring-boot-maven-plugin中,只需要配置对应目标仓库和主机信息即可完成镜像构建。

下面我们说用Spring Boot 提供的Maven 插件来看下如何打包镜像。

1. 设置Docker 守护程序地址

build-image命令需要访问 Docker 守护程序。默认情况下,它将通过本地连接与 Docker 守护进程通信。

可以通过两种方式设置:

  • 环境变量
  • 插件配置

可以设置环境变量来配置本地或远程连接。下表显示了环境变量及其值:

环境变量描述
DOCKER_HOST包含 Docker 守护程序的主机和端口的 URL - 例如tcp://192.168.99.100:2376
DOCKER_TLS_VERIFY是否启用HTTPS 协议
DOCKER_CERT_PATHHTTPS 证书和密钥文件的路径

也可以在插件中配置中的参数,下表总结了可用参数:

标签作用
host包含 Docker 守护程序的主机和端口的 URL - 例如tcp://192.168.99.100:2376
tlsVerify是否启用HTTPS 协议
certPathHTTPS 证书和密钥文件的路径
bindHostToBuilder如果为true,则主机属性的值将提供给为CNB生成器创建的容器(可选)

在构建时,会优先使用环境变量中的配置,如果之前Windows安装了Dokcer ,可以配置了这些变量,所以执行命令的时候需要检查是否配置了环境变量。

2. 编写POM

我们写一个很简单的配置,配置了打包为镜像、并发布到远程私服。

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                2.7.0
                
                    
                        
                        192.168.8.88/library/${project.artifactId}:${project.version}
                        
                        true
                    
                    
                        
                        http://192.168.8.88:2375
                        
                        false
                        
                        
                            admin
                            123456
                            >http://192.168.8.88
                            user@example.com
                        
                    
                
            
        
    

然后依次检查是否存在Dokcer 相关的环境变量:

这里发现我之前设置了。。。所以可以删除这个变量,或者在执行MVN 命令的窗口,临时删除。

3. 执行打包

先删除这个环境变量:


再使用mvn spring-boot:build-image 执行打包,可以看到首先去docker 官方下载了很多东西:

然后又去GitHub 下载了很多东西。。结果下载失败了。。。

试了几次还是下载不下来,应该有其他办法解决这个问题,但是懒得试了。。。到此结束吧。

总结: 官网插件并不太友好,而且功能也没有其他专业插件多,所以目前还是不推荐使用。。。

感兴趣的可以参考官网自己研究。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/974789.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号