SpringBoot3.X BuildPacks 使用指南

266 阅读1分钟

前言

每次立项(新建文件夹)都需要配置 Docker 镜像调整起来过于麻烦,有没有一种方式可以简单的快速生成可用的 Docker 镜像

前置条件

  1. Docker
  2. Gradle kts
  3. SpringBoot 3.X

构建镜像

SpringBoot 官方其实是有提供 Docker 镜像的快速构建方式的,只是出于各种原因没在国内推广开来,当然业务上更多会偏向自己使用 dockerfile 去定制自己的镜像

BootBuildImage

当我们新建一个 SpringBoot 项目时,查看 Gradle 的命令配置可以看到该命令

image.png

直接构建

如果我们直接运行构建命令会出现各种情况,主要的情况还是网络问题,无法访问 Github 资源,SpringBoot 引用的镜像构建方式是使用 BuildPack 构建的镜像,当涉及拉去 Github 资源时需要配置 VPN 或者把构建服务搭建在海外服务器推到仓库里

修改配置

大多数情况下我们更希望能在随时随地完成构建,如何在不引入繁杂配置的情况下解决此问题呢? 网络问题当然是配置代理啦,不过由于这块的网络资源真的相当稀缺,作者在 BuildPack 官网摸索了一阵子找到了解决办法

How To Configure Paketo Buildpacks - Paketo BuildpacksScenario B: Hostname Mirror(s) with Default Mirror 环节我们可以看到,我们可以通过指定 Hostname 修改对应的 mirror 从而加速网络资源加载

配置 build.gradle.kts 修改 BootBuildImage

tasks.named<BootBuildImage>("bootBuildImage") {
    ...
    environment.set(environment.get() + mapOf("BP_DEPENDENCY_MIRROR_GITHUB_COM" to "https://mirror.ghproxy.com/https://{originalHost}"))
}

注意这里的 ghpproxy.com 可以根据你自己喜欢的加速域名进行替换

文章到此结束, 点点赞哈