spring-boot-maven-plugin的build-image使用

8 篇文章 0 订阅
2 篇文章 0 订阅

        这个插件的作用就是帮你自动生成跨全平台的镜像服务,无需再自己手动写Dockerfile文件了,它是基于buildpacks这个规范,有一系列的生命周期,和maven差不多意思。正常来说,如果你是在互联网的话,它会自动的检测你项目的语言,运行时环境(python、nodejs、jvm)等等,自动从网络下载对应的依赖,一键即可生成,实在是非常好用!

        它的一些生命周期和配置可以在https://github.com/paketo-buildpacks这里看到,首先spring-boot-maven-plugin2.5.2版本使用的默认构建器是paketobuildpacks:builder:base,这里我们可以去看看github上的配置GitHub - paketo-buildpacks/base-builder,主要是builder.toml配置文件,里面有很多不同语言运行时环境的构建包(这里定义了很多,实际执行时就会检测,使用特定的构建包) 。

        我是用java,所以就会用到paketo-buildpacks/java这里包,继续找https://github.com/paketo-buildpacks/java,我们看buildpack.toml文件,里面又有很多依赖,这里一般的spring-boot项目只会用到5个依赖("paketo-buildpacks/ca-certificates", "paketo-buildpacks/bellsoft-liberica", "paketo-buildpacks/executable-jar","paketo-buildpacks/dist-zip","paketo-buildpacks/spring-boot",),我们主要看bellsoft-liberica这个,这个是jdk相关的配置

        如果是这么简单,那就没必要写一篇博客了,我遇到的问题是需要在内部网络使用,这时候就会报错,它默认会从上面说的bellsoft-liberica/buildpack.toml里配置的uri下载,就会报错,这里找了半天,终于找到了答案,不过解决方案需要在spring-boot-maven-plugin的2.5.x以上版本才支持。maven的配置如下:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.5.2</version>
    <configuration>
        <image>
            <bindings>
                <binding>
                    /bellsoft-jdk-config:/platform/bindings/bellsoft-jdk-config
                </binding>
            </bindings>
        </image>
    </configuration>
</plugin>

这里binding的意思是在构建器(构建器实际上就是个镜像)运行时,带上--volume 参数,把本地的地址映射到容器里的地址,:前面是自己的配置,可以任意,后面是容器里的地址,是固定的。

那本地地址里需要一些配置,主要是一个名为type的文件,内容就是dependency-mapping,然后再是其他的文件,文件名是在paketo-buildpacks/bellsoft-liberica的buildpack.toml里的uri下面的sha256的值,内容就是你jdk的内部网络可下载地址,配置好之后就可以一键生成镜像啦

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值