该插件可以使用云原生 Buildpack (CNB) 从 jar 或 war 文件创建 OCI 映像。 可以使用目标在命令行上生成图像。 这可确保在创建映像之前包生命周期已运行。build-imageSpring中文文档

出于安全原因,映像以非 root 用户身份构建和运行。 有关详细信息,请参阅 CNB 规范

最简单的入门方法是在项目上调用。 每当调用阶段时,都可以自动创建映像,如以下示例所示:mvn spring-boot:build-imagepackageSpring中文文档

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<executions>
				<execution>
					<goals>
						<goal>build-image-no-fork</goal>
					</goals>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>
在将目标绑定到包生命周期时使用。 此目标类似于,但不会分叉生命周期以确保已运行。 在本节的其余部分,用于指代 或 目标。build-image-no-forkbuild-imagepackagebuild-imagebuild-imagebuild-image-no-fork
虽然构建包从可执行存档运行,但不必先执行目标,因为可执行存档是在必要时自动创建的。 当重新打包应用程序时,它会应用与目标相同的设置,即可以使用其中一个排除选项来排除依赖项。 默认情况下,会自动排除 和 模块(您可以使用 和 属性进行控制)。repackagebuild-imagerepackagespring-boot-devtoolsspring-boot-docker-composeexcludeDevtoolsexcludeDockerCompose
出于安全原因,映像以非 root 用户身份构建和运行。 有关详细信息,请参阅 CNB 规范
在将目标绑定到包生命周期时使用。 此目标类似于,但不会分叉生命周期以确保已运行。 在本节的其余部分,用于指代 或 目标。build-image-no-forkbuild-imagepackagebuild-imagebuild-imagebuild-image-no-fork
虽然构建包从可执行存档运行,但不必先执行目标,因为可执行存档是在必要时自动创建的。 当重新打包应用程序时,它会应用与目标相同的设置,即可以使用其中一个排除选项来排除依赖项。 默认情况下,会自动排除 和 模块(您可以使用 和 属性进行控制)。repackagebuild-imagerepackagespring-boot-devtoolsspring-boot-docker-composeexcludeDevtoolsexcludeDockerCompose

Docker 守护程序

该目标需要访问 Docker 守护程序。 目标将检查本地 Docker CLI 配置文件以确定当前上下文,并使用上下文连接信息与 Docker 守护程序进行通信。 如果无法确定当前上下文或上下文没有连接信息,则目标将使用默认的本地连接。 这适用于所有受支持平台上的 Docker 引擎,无需配置。build-imageSpring中文文档

可以设置环境变量以配置使用备用本地或远程连接的目标。 下表显示了环境变量及其值:build-imageSpring中文文档

环境变量 描述

DOCKER_CONFIGSpring中文文档

用于确定当前上下文的 Docker CLI 配置文件的位置(默认为$HOME/.docker)Spring中文文档

DOCKER_CONTEXTSpring中文文档

应用于从 Docker CLI 配置文件中检索主机信息的上下文的名称(覆盖DOCKER_HOST)Spring中文文档

DOCKER_HOSTSpring中文文档

包含 Docker 守护程序的主机和端口的 URL - 例如tcp://192.168.99.100:2376Spring中文文档

DOCKER_TLS_VERIFYSpring中文文档

设置为(可选)时启用安全 HTTPS 协议1Spring中文文档

DOCKER_CERT_PATHSpring中文文档

HTTPS 的证书和密钥文件的路径(如果为必填项,则为必填项,否则忽略)DOCKER_TLS_VERIFY=1Spring中文文档

Docker 守护进程连接信息也可以使用插件配置中的参数提供。 下表总结了可用参数:dockerSpring中文文档

参数 描述

contextSpring中文文档

应用于从 Docker CLI 配置文件中检索主机信息的上下文的名称Spring中文文档

hostSpring中文文档

包含 Docker 守护程序的主机和端口的 URL - 例如tcp://192.168.99.100:2376Spring中文文档

tlsVerifySpring中文文档

设置为(可选)时启用安全 HTTPS 协议trueSpring中文文档

certPathSpring中文文档

HTTPS 的证书和密钥文件的路径(如果为 ,则为必填项,否则忽略)tlsVerifytrueSpring中文文档

bindHostToBuilderSpring中文文档

当 时,该属性的值将提供给为 CNB 生成器创建的容器(可选)truehostSpring中文文档

有关详细信息,另请参阅示例Spring中文文档

环境变量 描述

DOCKER_CONFIGSpring中文文档

用于确定当前上下文的 Docker CLI 配置文件的位置(默认为$HOME/.docker)Spring中文文档

DOCKER_CONTEXTSpring中文文档

应用于从 Docker CLI 配置文件中检索主机信息的上下文的名称(覆盖DOCKER_HOST)Spring中文文档

DOCKER_HOSTSpring中文文档

包含 Docker 守护程序的主机和端口的 URL - 例如tcp://192.168.99.100:2376Spring中文文档

DOCKER_TLS_VERIFYSpring中文文档

设置为(可选)时启用安全 HTTPS 协议1Spring中文文档

DOCKER_CERT_PATHSpring中文文档

HTTPS 的证书和密钥文件的路径(如果为必填项,则为必填项,否则忽略)DOCKER_TLS_VERIFY=1Spring中文文档

参数 描述

contextSpring中文文档

应用于从 Docker CLI 配置文件中检索主机信息的上下文的名称Spring中文文档

hostSpring中文文档

包含 Docker 守护程序的主机和端口的 URL - 例如tcp://192.168.99.100:2376Spring中文文档

tlsVerifySpring中文文档

设置为(可选)时启用安全 HTTPS 协议trueSpring中文文档

certPathSpring中文文档

HTTPS 的证书和密钥文件的路径(如果为 ,则为必填项,否则忽略)tlsVerifytrueSpring中文文档

bindHostToBuilderSpring中文文档

当 时,该属性的值将提供给为 CNB 生成器创建的容器(可选)truehostSpring中文文档

Docker 注册表

如果 或 参数指定的 Docker 镜像存储在需要身份验证的私有 Docker 镜像注册表中,则可以使用参数提供身份验证凭据。builderrunImagedocker.builderRegistrySpring中文文档

如果要将生成的 Docker 镜像发布到 Docker 镜像注册表,则可以使用参数提供身份验证凭据。docker.publishRegistrySpring中文文档

提供用户认证或身份令牌认证的参数。 有关支持的身份验证方法的更多信息,请参阅用于存储映像的 Docker 注册表的文档。Spring中文文档

下表总结了 和 的可用参数:docker.builderRegistrydocker.publishRegistrySpring中文文档

参数 描述

usernameSpring中文文档

Docker 映像注册表用户的用户名。用户身份验证是必需的。Spring中文文档

passwordSpring中文文档

Docker 映像注册表用户的密码。用户身份验证是必需的。Spring中文文档

urlSpring中文文档

Docker 映像注册表的地址。对于用户身份验证是可选的。Spring中文文档

emailSpring中文文档

Docker 映像注册表用户的电子邮件地址。对于用户身份验证是可选的。Spring中文文档

tokenSpring中文文档

Docker 映像注册表用户的身份令牌。令牌身份验证是必需的。Spring中文文档

有关详细信息,另请参阅示例Spring中文文档

参数 描述

usernameSpring中文文档

Docker 映像注册表用户的用户名。用户身份验证是必需的。Spring中文文档

passwordSpring中文文档

Docker 映像注册表用户的密码。用户身份验证是必需的。Spring中文文档

urlSpring中文文档

Docker 映像注册表的地址。对于用户身份验证是可选的。Spring中文文档

emailSpring中文文档

Docker 映像注册表用户的电子邮件地址。对于用户身份验证是可选的。Spring中文文档

tokenSpring中文文档

Docker 映像注册表用户的身份令牌。令牌身份验证是必需的。Spring中文文档

图像自定义

该插件调用构建器来编排映像的生成。 构建器包含多个构建包,这些构建包可以检查应用程序以影响生成的映像。 默认情况下,插件会选择构建器映像。 生成的图像的名称是从项目属性中推导出来的。Spring中文文档

该参数允许配置构建器以及它应该如何在项目上运行。 下表汇总了可用参数及其默认值:imageSpring中文文档

参数 / (用户属性) 描述 默认值

builder
(spring-boot.build-image.builder)Spring中文文档

要使用的 Builder 映像的名称。Spring中文文档

paketobuildpacks/builder-jammy-base:latestSpring中文文档

runImage
(spring-boot.build-image.runImage)Spring中文文档

要使用的运行映像的名称。Spring中文文档

无默认值,表示应使用生成器元数据中指定的运行映像。Spring中文文档

name
(spring-boot.build-image.imageName)Spring中文文档

生成的图像的图像名称Spring中文文档

docker.io/library/
${project.artifactId}:${project.version}Spring中文文档

pullPolicy
(spring-boot.build-image.pullPolicy)Spring中文文档

用于确定何时从注册表中拉取生成器和运行映像的策略。 可接受的值为 、 和 。ALWAYSNEVERIF_NOT_PRESENTSpring中文文档

ALWAYSSpring中文文档

envSpring中文文档

应传递给生成器的环境变量。Spring中文文档

buildpacksSpring中文文档

构建者在生成映像时应使用的构建包。 将仅使用指定的构建包,覆盖构建器中包含的默认构建包。 Buildpack 引用必须采用以下形式之一:Spring中文文档

  • 构建器中的 Buildpack -[urn:cnb:builder:]<buildpack ID>[@<version>]Spring中文文档

  • Buildpack 在文件系统的目录中 -[file://]<path>Spring中文文档

  • 文件系统上 gzip 压缩的 tar (.tgz) 文件中的 Buildpack -[file://]<path>/<file name>Spring中文文档

  • OCI 映像中的 Buildpack -[docker://]<host>/<repo>[:<tag>][@<digest>]Spring中文文档

None,表示构建器应使用其中包含的构建包。Spring中文文档

bindingsSpring中文文档

在生成映像时应装载到构建器容器的卷绑定挂载。 在创建生成器容器时,绑定将未经分析和验证地传递给 Docker。 绑定必须采用以下形式之一:Spring中文文档

其中可以包含:<options>Spring中文文档

network + (spring-boot.build-image.network)Spring中文文档

构建器容器将配置为使用的网络驱动程序。 在创建生成器容器时,提供的值将在未经验证的情况下传递给 Docker。Spring中文文档

cleanCache + (spring-boot.build-image.cleanCache)Spring中文文档

是否在构建之前清理缓存。Spring中文文档

falseSpring中文文档

verboseLoggingSpring中文文档

启用生成器操作的详细日志记录。Spring中文文档

falseSpring中文文档

publish + (spring-boot.build-image.publish)Spring中文文档

是否将生成的镜像发布到 Docker 注册表。Spring中文文档

falseSpring中文文档

tagsSpring中文文档

要应用于生成的图像的一个或多个附加标记。 提供给选项的值应为完整图像引用。 有关更多详细信息,请参阅标签部分tagsSpring中文文档

buildWorkspaceSpring中文文档

构建器和构建包将用于在映像构建期间存储文件的临时工作区。 该值可以是命名卷或绑定挂载位置。Spring中文文档

Docker 守护程序中的命名卷,其名称派生自映像名称。Spring中文文档

buildCacheSpring中文文档

包含由 buildpack 创建并由映像构建过程使用的图层的缓存。 该值可以是命名卷或绑定挂载位置。Spring中文文档

Docker 守护程序中的命名卷,其名称派生自映像名称。Spring中文文档

launchCacheSpring中文文档

包含由构建包创建并由映像启动过程使用的图层的缓存。 该值可以是命名卷或绑定挂载位置。Spring中文文档

Docker 守护程序中的命名卷,其名称派生自映像名称。Spring中文文档

createdDate
(spring-boot.build-image.createdDate)Spring中文文档

将用于在生成的图像的元数据中设置字段的日期。 该值必须是 ISO 8601 即时格式的字符串,或者使用当前日期和时间。CreatednowSpring中文文档

一个固定的日期,可实现构建的可重现性。Spring中文文档

applicationDirectory
(spring-boot.build-image.applicationDirectory)Spring中文文档

应用程序内容将在构建器映像中上载到的目录的路径。 应用程序内容也将位于生成的图像中的此位置。Spring中文文档

/workspaceSpring中文文档

securityOptionsSpring中文文档

将应用于构建器容器的安全选项,以字符串值数组的形式提供Spring中文文档

["label=disable"]在 Linux 和 macOS 上,在 Windows 上[]Spring中文文档

该插件使用编译器的插件配置或属性检测项目的目标 Java 兼容性。 当使用默认的 Paketo 构建器和构建包时,插件会指示构建包安装相同的 Java 版本。 您可以覆盖此行为,如构建器配置示例中所示。maven.compiler.target

有关详细信息,另请参阅示例Spring中文文档

标签格式

提供给选项的值应为完整图像引用。 接受的格式为 。tags[domainHost:port/][path/]name[:tag][@digest]Spring中文文档

如果缺少域,则默认为 。 如果缺少路径,则默认为 。 如果缺少标记,则默认为 。docker.iolibrarylatestSpring中文文档

一些例子:Spring中文文档

参数 / (用户属性) 描述 默认值

builder
(spring-boot.build-image.builder)Spring中文文档

要使用的 Builder 映像的名称。Spring中文文档

paketobuildpacks/builder-jammy-base:latestSpring中文文档

runImage
(spring-boot.build-image.runImage)Spring中文文档

要使用的运行映像的名称。Spring中文文档

无默认值,表示应使用生成器元数据中指定的运行映像。Spring中文文档

name
(spring-boot.build-image.imageName)Spring中文文档

生成的图像的图像名称Spring中文文档

docker.io/library/
${project.artifactId}:${project.version}Spring中文文档

pullPolicy
(spring-boot.build-image.pullPolicy)Spring中文文档

用于确定何时从注册表中拉取生成器和运行映像的策略。 可接受的值为 、 和 。ALWAYSNEVERIF_NOT_PRESENTSpring中文文档

ALWAYSSpring中文文档

envSpring中文文档

应传递给生成器的环境变量。Spring中文文档

buildpacksSpring中文文档

构建者在生成映像时应使用的构建包。 将仅使用指定的构建包,覆盖构建器中包含的默认构建包。 Buildpack 引用必须采用以下形式之一:Spring中文文档

  • 构建器中的 Buildpack -[urn:cnb:builder:]<buildpack ID>[@<version>]Spring中文文档

  • Buildpack 在文件系统的目录中 -[file://]<path>Spring中文文档

  • 文件系统上 gzip 压缩的 tar (.tgz) 文件中的 Buildpack -[file://]<path>/<file name>Spring中文文档

  • OCI 映像中的 Buildpack -[docker://]<host>/<repo>[:<tag>][@<digest>]Spring中文文档

None,表示构建器应使用其中包含的构建包。Spring中文文档

bindingsSpring中文文档

在生成映像时应装载到构建器容器的卷绑定挂载。 在创建生成器容器时,绑定将未经分析和验证地传递给 Docker。 绑定必须采用以下形式之一:Spring中文文档

其中可以包含:<options>Spring中文文档

network + (spring-boot.build-image.network)Spring中文文档

构建器容器将配置为使用的网络驱动程序。 在创建生成器容器时,提供的值将在未经验证的情况下传递给 Docker。Spring中文文档

cleanCache + (spring-boot.build-image.cleanCache)Spring中文文档

是否在构建之前清理缓存。Spring中文文档

falseSpring中文文档

verboseLoggingSpring中文文档

启用生成器操作的详细日志记录。Spring中文文档

falseSpring中文文档

publish + (spring-boot.build-image.publish)Spring中文文档

是否将生成的镜像发布到 Docker 注册表。Spring中文文档

falseSpring中文文档

tagsSpring中文文档

要应用于生成的图像的一个或多个附加标记。 提供给选项的值应为完整图像引用。 有关更多详细信息,请参阅标签部分tagsSpring中文文档

buildWorkspaceSpring中文文档

构建器和构建包将用于在映像构建期间存储文件的临时工作区。 该值可以是命名卷或绑定挂载位置。Spring中文文档

Docker 守护程序中的命名卷,其名称派生自映像名称。Spring中文文档

buildCacheSpring中文文档

包含由 buildpack 创建并由映像构建过程使用的图层的缓存。 该值可以是命名卷或绑定挂载位置。Spring中文文档

Docker 守护程序中的命名卷,其名称派生自映像名称。Spring中文文档

launchCacheSpring中文文档

包含由构建包创建并由映像启动过程使用的图层的缓存。 该值可以是命名卷或绑定挂载位置。Spring中文文档

Docker 守护程序中的命名卷,其名称派生自映像名称。Spring中文文档

createdDate
(spring-boot.build-image.createdDate)Spring中文文档

将用于在生成的图像的元数据中设置字段的日期。 该值必须是 ISO 8601 即时格式的字符串,或者使用当前日期和时间。CreatednowSpring中文文档

一个固定的日期,可实现构建的可重现性。Spring中文文档

applicationDirectory
(spring-boot.build-image.applicationDirectory)Spring中文文档

应用程序内容将在构建器映像中上载到的目录的路径。 应用程序内容也将位于生成的图像中的此位置。Spring中文文档

/workspaceSpring中文文档

securityOptionsSpring中文文档

将应用于构建器容器的安全选项,以字符串值数组的形式提供Spring中文文档

["label=disable"]在 Linux 和 macOS 上,在 Windows 上[]Spring中文文档

该插件使用编译器的插件配置或属性检测项目的目标 Java 兼容性。 当使用默认的 Paketo 构建器和构建包时,插件会指示构建包安装相同的 Java 版本。 您可以覆盖此行为,如构建器配置示例中所示。maven.compiler.target

spring-boot:build-image

org.springframework.boot:spring-boot-maven-plugin:3.3.1Spring中文文档

使用 buildpack 将应用打包到 OCI 映像中,然后分叉生命周期以确保其运行。此目标适用于命令行调用。如果需要在生成中配置目标,请改用。packageexecutionbuild-image-no-forkSpring中文文档

必需参数

名字 类型 违约

源目录Spring中文文档

FileSpring中文文档

${project.build.directory}Spring中文文档

参数详细信息

classifier

查找源存档时使用的分类器。Spring中文文档

名字Spring中文文档

classifierSpring中文文档

类型Spring中文文档

java.lang.StringSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

excludeDevtools

从重新打包的存档中排除 Spring Boot devtools。Spring中文文档

名字Spring中文文档

excludeDevtoolsSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

trueSpring中文文档

User 属性Spring中文文档

spring-boot.repackage.excludeDevtoolsSpring中文文档

因为Spring中文文档

1.3.0Spring中文文档

excludeDockerCompose

从重新打包的存档中排除 Spring Boot 开发服务。Spring中文文档

名字Spring中文文档

excludeDockerComposeSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

trueSpring中文文档

User 属性Spring中文文档

spring-boot.repackage.excludeDockerComposeSpring中文文档

因为Spring中文文档

3.1.0Spring中文文档

excludeGroupIds

要排除的 groupId 名称的逗号分隔列表(完全匹配)。Spring中文文档

名字Spring中文文档

excludeGroupIdsSpring中文文档

类型Spring中文文档

java.lang.StringSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

spring-boot.excludeGroupIdsSpring中文文档

因为Spring中文文档

1.1.0Spring中文文档

excludes

要排除的项目定义的集合。该元素定义必需组件和组件以及可选组件。配置为属性时,值应以逗号分隔,并用冒号分隔的组件分隔:ExcludegroupIdartifactIdclassifiergroupId:artifactId,groupId:artifactId:classifierSpring中文文档

名字Spring中文文档

excludesSpring中文文档

类型Spring中文文档

java.util.ListSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

spring-boot.excludesSpring中文文档

因为Spring中文文档

1.1.0Spring中文文档

image

映像配置,包括 、 、 、 、 、 和 选项。builderrunImagenameenvcleanCacheverboseLoggingpullPolicypublishSpring中文文档

名字Spring中文文档

imageSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.ImageSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

includeSystemScope

包括系统范围的依赖项。Spring中文文档

名字Spring中文文档

includeSystemScopeSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

falseSpring中文文档

User 属性Spring中文文档

因为Spring中文文档

1.4.0Spring中文文档

includes

要包含的项目定义的集合。该元素定义必需组件和组件以及可选组件。配置为属性时,值应以逗号分隔,并用冒号分隔的组件分隔:IncludegroupIdartifactIdclassifiergroupId:artifactId,groupId:artifactId:classifierSpring中文文档

名字Spring中文文档

includesSpring中文文档

类型Spring中文文档

java.util.ListSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

spring-boot.includesSpring中文文档

因为Spring中文文档

1.2.0Spring中文文档

layers

图层配置,包含禁用图层创建、排除图层工具 jar 和提供自定义图层配置文件的选项。Spring中文文档

名字Spring中文文档

layersSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.LayersSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

layout

存档的类型(对应于依赖项在其中的布局方式)。可能的值为 、 、 、 。默认为基于存档类型的猜测。JARWARZIPDIRNONESpring中文文档

名字Spring中文文档

layoutSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.AbstractPackagerMojo$LayoutTypeSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.11Spring中文文档

layoutFactory

如果未设置显式布局,则将用于创建可执行存档的布局工厂。替代布局实现可以由第三方提供。Spring中文文档

名字Spring中文文档

layoutFactorySpring中文文档

类型Spring中文文档

org.springframework.boot.loader.tools.LayoutFactorySpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.11Spring中文文档

mainClass

主类的名称。如果未指定,则将使用找到的第一个包含方法的已编译类。mainSpring中文文档

名字Spring中文文档

mainClassSpring中文文档

类型Spring中文文档

java.lang.StringSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

1.0.0Spring中文文档

sourceDirectory

包含源存档的目录。Spring中文文档

名字Spring中文文档

sourceDirectorySpring中文文档

类型Spring中文文档

java.io.FileSpring中文文档

默认值Spring中文文档

${project.build.directory}Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

名字 类型 违约

源目录Spring中文文档

FileSpring中文文档

${project.build.directory}Spring中文文档

名字 类型 违约

分类Spring中文文档

StringSpring中文文档

码头工人Spring中文文档

DockerSpring中文文档

排除DevtoolsSpring中文文档

booleanSpring中文文档

trueSpring中文文档

excludeDockerComposeSpring中文文档

booleanSpring中文文档

trueSpring中文文档

排除GroupIdsSpring中文文档

StringSpring中文文档

排除Spring中文文档

ListSpring中文文档

图像Spring中文文档

ImageSpring中文文档

includeSystemScopeSpring中文文档

booleanSpring中文文档

falseSpring中文文档

include工具Spring中文文档

booleanSpring中文文档

trueSpring中文文档

包括Spring中文文档

ListSpring中文文档

Spring中文文档

LayersSpring中文文档

布局Spring中文文档

LayoutTypeSpring中文文档

布局工厂Spring中文文档

LayoutFactorySpring中文文档

loader实现Spring中文文档

LoaderImplementationSpring中文文档

mainClassSpring中文文档

StringSpring中文文档

Spring中文文档

booleanSpring中文文档

falseSpring中文文档

名字Spring中文文档

classifierSpring中文文档

类型Spring中文文档

java.lang.StringSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

名字Spring中文文档

dockerSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.DockerSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.4.0Spring中文文档

名字Spring中文文档

excludeDevtoolsSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

trueSpring中文文档

User 属性Spring中文文档

spring-boot.repackage.excludeDevtoolsSpring中文文档

因为Spring中文文档

1.3.0Spring中文文档

名字Spring中文文档

excludeDockerComposeSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

trueSpring中文文档

User 属性Spring中文文档

spring-boot.repackage.excludeDockerComposeSpring中文文档

因为Spring中文文档

3.1.0Spring中文文档

名字Spring中文文档

excludeGroupIdsSpring中文文档

类型Spring中文文档

java.lang.StringSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

spring-boot.excludeGroupIdsSpring中文文档

因为Spring中文文档

1.1.0Spring中文文档

名字Spring中文文档

excludesSpring中文文档

类型Spring中文文档

java.util.ListSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

spring-boot.excludesSpring中文文档

因为Spring中文文档

1.1.0Spring中文文档

名字Spring中文文档

imageSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.ImageSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

名字Spring中文文档

includeSystemScopeSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

falseSpring中文文档

User 属性Spring中文文档

因为Spring中文文档

1.4.0Spring中文文档

名字Spring中文文档

includeToolsSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

trueSpring中文文档

User 属性Spring中文文档

因为Spring中文文档

3.3.0Spring中文文档

名字Spring中文文档

includesSpring中文文档

类型Spring中文文档

java.util.ListSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

spring-boot.includesSpring中文文档

因为Spring中文文档

1.2.0Spring中文文档

名字Spring中文文档

layersSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.LayersSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

名字Spring中文文档

layoutSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.AbstractPackagerMojo$LayoutTypeSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.11Spring中文文档

名字Spring中文文档

layoutFactorySpring中文文档

类型Spring中文文档

org.springframework.boot.loader.tools.LayoutFactorySpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.11Spring中文文档

名字Spring中文文档

loaderImplementationSpring中文文档

类型Spring中文文档

org.springframework.boot.loader.tools.LoaderImplementationSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

3.2.0Spring中文文档

名字Spring中文文档

mainClassSpring中文文档

类型Spring中文文档

java.lang.StringSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

1.0.0Spring中文文档

名字Spring中文文档

skipSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

falseSpring中文文档

User 属性Spring中文文档

spring-boot.build-image.skipSpring中文文档

因为Spring中文文档

2.3.0Spring中文文档

名字Spring中文文档

sourceDirectorySpring中文文档

类型Spring中文文档

java.io.FileSpring中文文档

默认值Spring中文文档

${project.build.directory}Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

spring-boot:build-image-no-fork

org.springframework.boot:spring-boot-maven-plugin:3.3.1Spring中文文档

使用 buildpack 将应用打包到 OCI 映像中,但不分叉生命周期。在生成中配置目标时,应使用此目标。若要在命令行上调用目标,请改用。executionbuild-imageSpring中文文档

必需参数

名字 类型 违约

源目录Spring中文文档

FileSpring中文文档

${project.build.directory}Spring中文文档

参数详细信息

classifier

查找源存档时使用的分类器。Spring中文文档

名字Spring中文文档

classifierSpring中文文档

类型Spring中文文档

java.lang.StringSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

excludeDevtools

从重新打包的存档中排除 Spring Boot devtools。Spring中文文档

名字Spring中文文档

excludeDevtoolsSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

trueSpring中文文档

User 属性Spring中文文档

spring-boot.repackage.excludeDevtoolsSpring中文文档

因为Spring中文文档

1.3.0Spring中文文档

excludeDockerCompose

从重新打包的存档中排除 Spring Boot 开发服务。Spring中文文档

名字Spring中文文档

excludeDockerComposeSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

trueSpring中文文档

User 属性Spring中文文档

spring-boot.repackage.excludeDockerComposeSpring中文文档

因为Spring中文文档

3.1.0Spring中文文档

excludeGroupIds

要排除的 groupId 名称的逗号分隔列表(完全匹配)。Spring中文文档

名字Spring中文文档

excludeGroupIdsSpring中文文档

类型Spring中文文档

java.lang.StringSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

spring-boot.excludeGroupIdsSpring中文文档

因为Spring中文文档

1.1.0Spring中文文档

excludes

要排除的项目定义的集合。该元素定义必需组件和组件以及可选组件。配置为属性时,值应以逗号分隔,并用冒号分隔的组件分隔:ExcludegroupIdartifactIdclassifiergroupId:artifactId,groupId:artifactId:classifierSpring中文文档

名字Spring中文文档

excludesSpring中文文档

类型Spring中文文档

java.util.ListSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

spring-boot.excludesSpring中文文档

因为Spring中文文档

1.1.0Spring中文文档

image

映像配置,包括 、 、 、 、 、 和 选项。builderrunImagenameenvcleanCacheverboseLoggingpullPolicypublishSpring中文文档

名字Spring中文文档

imageSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.ImageSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

includeSystemScope

包括系统范围的依赖项。Spring中文文档

名字Spring中文文档

includeSystemScopeSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

falseSpring中文文档

User 属性Spring中文文档

因为Spring中文文档

1.4.0Spring中文文档

includes

要包含的项目定义的集合。该元素定义必需组件和组件以及可选组件。配置为属性时,值应以逗号分隔,并用冒号分隔的组件分隔:IncludegroupIdartifactIdclassifiergroupId:artifactId,groupId:artifactId:classifierSpring中文文档

名字Spring中文文档

includesSpring中文文档

类型Spring中文文档

java.util.ListSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

spring-boot.includesSpring中文文档

因为Spring中文文档

1.2.0Spring中文文档

layers

图层配置,包含禁用图层创建、排除图层工具 jar 和提供自定义图层配置文件的选项。Spring中文文档

名字Spring中文文档

layersSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.LayersSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

layout

存档的类型(对应于依赖项在其中的布局方式)。可能的值为 、 、 、 。默认为基于存档类型的猜测。JARWARZIPDIRNONESpring中文文档

名字Spring中文文档

layoutSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.AbstractPackagerMojo$LayoutTypeSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.11Spring中文文档

layoutFactory

如果未设置显式布局,则将用于创建可执行存档的布局工厂。替代布局实现可以由第三方提供。Spring中文文档

名字Spring中文文档

layoutFactorySpring中文文档

类型Spring中文文档

org.springframework.boot.loader.tools.LayoutFactorySpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.11Spring中文文档

mainClass

主类的名称。如果未指定,则将使用找到的第一个包含方法的已编译类。mainSpring中文文档

名字Spring中文文档

mainClassSpring中文文档

类型Spring中文文档

java.lang.StringSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

1.0.0Spring中文文档

sourceDirectory

包含源存档的目录。Spring中文文档

名字Spring中文文档

sourceDirectorySpring中文文档

类型Spring中文文档

java.io.FileSpring中文文档

默认值Spring中文文档

${project.build.directory}Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

名字 类型 违约

源目录Spring中文文档

FileSpring中文文档

${project.build.directory}Spring中文文档

名字 类型 违约

分类Spring中文文档

StringSpring中文文档

码头工人Spring中文文档

DockerSpring中文文档

排除DevtoolsSpring中文文档

booleanSpring中文文档

trueSpring中文文档

excludeDockerComposeSpring中文文档

booleanSpring中文文档

trueSpring中文文档

排除GroupIdsSpring中文文档

StringSpring中文文档

排除Spring中文文档

ListSpring中文文档

图像Spring中文文档

ImageSpring中文文档

includeSystemScopeSpring中文文档

booleanSpring中文文档

falseSpring中文文档

include工具Spring中文文档

booleanSpring中文文档

trueSpring中文文档

包括Spring中文文档

ListSpring中文文档

Spring中文文档

LayersSpring中文文档

布局Spring中文文档

LayoutTypeSpring中文文档

布局工厂Spring中文文档

LayoutFactorySpring中文文档

loader实现Spring中文文档

LoaderImplementationSpring中文文档

mainClassSpring中文文档

StringSpring中文文档

Spring中文文档

booleanSpring中文文档

falseSpring中文文档

名字Spring中文文档

classifierSpring中文文档

类型Spring中文文档

java.lang.StringSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

名字Spring中文文档

dockerSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.DockerSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.4.0Spring中文文档

名字Spring中文文档

excludeDevtoolsSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

trueSpring中文文档

User 属性Spring中文文档

spring-boot.repackage.excludeDevtoolsSpring中文文档

因为Spring中文文档

1.3.0Spring中文文档

名字Spring中文文档

excludeDockerComposeSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

trueSpring中文文档

User 属性Spring中文文档

spring-boot.repackage.excludeDockerComposeSpring中文文档

因为Spring中文文档

3.1.0Spring中文文档

名字Spring中文文档

excludeGroupIdsSpring中文文档

类型Spring中文文档

java.lang.StringSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

spring-boot.excludeGroupIdsSpring中文文档

因为Spring中文文档

1.1.0Spring中文文档

名字Spring中文文档

excludesSpring中文文档

类型Spring中文文档

java.util.ListSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

spring-boot.excludesSpring中文文档

因为Spring中文文档

1.1.0Spring中文文档

名字Spring中文文档

imageSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.ImageSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

名字Spring中文文档

includeSystemScopeSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

falseSpring中文文档

User 属性Spring中文文档

因为Spring中文文档

1.4.0Spring中文文档

名字Spring中文文档

includeToolsSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

trueSpring中文文档

User 属性Spring中文文档

因为Spring中文文档

3.3.0Spring中文文档

名字Spring中文文档

includesSpring中文文档

类型Spring中文文档

java.util.ListSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

spring-boot.includesSpring中文文档

因为Spring中文文档

1.2.0Spring中文文档

名字Spring中文文档

layersSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.LayersSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

名字Spring中文文档

layoutSpring中文文档

类型Spring中文文档

org.springframework.boot.maven.AbstractPackagerMojo$LayoutTypeSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.11Spring中文文档

名字Spring中文文档

layoutFactorySpring中文文档

类型Spring中文文档

org.springframework.boot.loader.tools.LayoutFactorySpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.11Spring中文文档

名字Spring中文文档

loaderImplementationSpring中文文档

类型Spring中文文档

org.springframework.boot.loader.tools.LoaderImplementationSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

3.2.0Spring中文文档

名字Spring中文文档

mainClassSpring中文文档

类型Spring中文文档

java.lang.StringSpring中文文档

默认值Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

1.0.0Spring中文文档

名字Spring中文文档

skipSpring中文文档

类型Spring中文文档

booleanSpring中文文档

默认值Spring中文文档

falseSpring中文文档

User 属性Spring中文文档

spring-boot.build-image.skipSpring中文文档

因为Spring中文文档

2.3.0Spring中文文档

名字Spring中文文档

sourceDirectorySpring中文文档

类型Spring中文文档

java.io.FileSpring中文文档

默认值Spring中文文档

${project.build.directory}Spring中文文档

User 属性Spring中文文档

因为Spring中文文档

2.3.0Spring中文文档

例子

自定义映像生成器

如果您需要自定义用于创建镜像的构建器或用于启动构建镜像的运行镜像,请配置插件,如以下示例所示:Spring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<image>
						<builder>mine/java-cnb-builder</builder>
						<runImage>mine/java-cnb-run</runImage>
					</image>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

此配置将使用具有名称和标记的构建器映像,以及命名和标记的运行映像。mine/java-cnb-builderlatestmine/java-cnb-runlatestSpring中文文档

也可以在命令行上指定构建器和运行映像,如以下示例所示:Spring中文文档

$ mvn spring-boot:build-image -Dspring-boot.build-image.builder=mine/java-cnb-builder -Dspring-boot.build-image.runImage=mine/java-cnb-run

构建器配置

如果构建器使用环境变量公开配置选项,则可以使用属性设置这些选项。envSpring中文文档

以下是在构建时配置 Paketo Java 构建包使用的 JVM 版本的示例:Spring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<image>
						<env>
							<BP_JVM_VERSION>17</BP_JVM_VERSION>
						</env>
					</image>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

如果生成器运行的 Docker 守护程序与生成包从中下载项目的网络位置之间存在网络代理,则需要将生成器配置为使用该代理。 使用 Paketo 构建器时,可以通过设置 and/or 环境变量来实现,如以下示例所示:HTTPS_PROXYHTTP_PROXYSpring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<image>
						<env>
							<HTTP_PROXY>http://proxy.example.com</HTTP_PROXY>
							<HTTPS_PROXY>https://proxy.example.com</HTTPS_PROXY>
						</env>
					</image>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

运行时 JVM 配置

Paketo Java 构建包通过设置环境变量来配置 JVM 运行时环境。 可以修改 buildpack 提供的值,以便在容器中启动应用程序映像时自定义 JVM 运行时行为。JAVA_TOOL_OPTIONSJAVA_TOOL_OPTIONSSpring中文文档

可以按照 Paketo 文档中的描述设置应存储在映像中并应用于每个部署的环境变量修改,并在以下示例中显示:Spring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<image>
						<env>
							<BPE_DELIM_JAVA_TOOL_OPTIONS xml:space="preserve"> </BPE_DELIM_JAVA_TOOL_OPTIONS>
							<BPE_APPEND_JAVA_TOOL_OPTIONS>-XX:+HeapDumpOnOutOfMemoryError</BPE_APPEND_JAVA_TOOL_OPTIONS>
						</env>
					</image>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

自定义镜像名称

默认情况下,映像名称是从项目的 和 推断出来的,类似于 . 您可以控制该名称,如以下示例所示:artifactIdversiondocker.io/library/${project.artifactId}:${project.version}Spring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<image>
						<name>example.com/library/${project.artifactId}</name>
					</image>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
此配置不提供显式标记,因此使用。 也可以指定标记,可以使用 ,构建中可用的任何属性或硬编码版本。latest${project.version}

也可以在命令行上指定映像名称,如以下示例所示:Spring中文文档

$ mvn spring-boot:build-image -Dspring-boot.build-image.imageName=example.com/library/my-app:v1

构建包

默认情况下,构建器将使用构建器映像中包含的构建包,并按预定义的顺序应用它们。 可以提供一组替代的构建包来应用构建器中未包含的构建包,或更改包含的构建包的顺序。 当提供一个或多个构建包时,将仅应用指定的构建包。Spring中文文档

下面的示例指示构建器使用打包在文件中的自定义构建包,后跟构建器中包含的构建包。.tgzSpring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<image>
						<buildpacks>
							<buildpack>file:///path/to/example-buildpack.tgz</buildpack>
							<buildpack>urn:cnb:builder:paketo-buildpacks/java</buildpack>
						</buildpacks>
					</image>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

构建包可以在下面显示的任何形式中指定。Spring中文文档

位于 CNB Builder 中的构建包(如果构建器中只有一个与 ...buildpack-idSpring中文文档

包含构建包内容的目录的路径(Windows 不支持):Spring中文文档

包含构建包内容的 gzip 压缩 tar 文件的路径:Spring中文文档

包含打包构建包的 OCI 映像:Spring中文文档

图像发布

通过启用选项,可以将生成的映像发布到 Docker 注册表。publishSpring中文文档

如果 Docker 注册表需要身份验证,则可以使用参数配置凭据。 如果 Docker 注册表不需要身份验证,则可以省略配置。docker.publishRegistrydocker.publishRegistrySpring中文文档

映像将发布到的注册表由映像名称的注册表部分确定(在这些示例中为)。 如果配置了凭据并包含参数,则此值将传递给注册表,但不用于确定发布注册表位置。docker.example.comdocker.publishRegistryurl
<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<image>
						<name>docker.example.com/library/${project.artifactId}</name>
						<publish>true</publish>
					</image>
					<docker>
						<publishRegistry>
							<username>user</username>
							<password>secret</password>
						</publishRegistry>
					</docker>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

也可以在命令行上指定该选项,如以下示例所示:publishSpring中文文档

$ mvn spring-boot:build-image -Dspring-boot.build-image.imageName=docker.example.com/library/my-app:v1 -Dspring-boot.build-image.publish=true

在命令行上使用该选项进行身份验证时,可以使用属性提供凭据,如下例所示:publishSpring中文文档

$ mvn spring-boot:build-image \
      -Ddocker.publishRegistry.username=user \
      -Ddocker.publishRegistry.password=secret \
      -Ddocker.publishRegistry.url=docker.example.com \
      -Dspring-boot.build-image.publish=true \
      -Dspring-boot.build-image.imageName=docker.example.com/library/my-app:v1

并引用 XML 配置中的属性:Spring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<docker>
						<publishRegistry>
							<url>${docker.publishRegistry.url}</url>
							<username>${docker.publishRegistry.username}</username>
							<password>${docker.publishRegistry.password}</password>
						</publishRegistry>
					</docker>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

Builder 缓存和工作区配置

CNB 构建器缓存在构建和启动映像时使用的图层。 默认情况下,这些缓存作为命名卷存储在 Docker 守护程序中,其名称派生自目标映像的全名。 如果映像名称频繁更改,例如,当项目版本用作映像名称中的标记时,则缓存可能会经常失效。Spring中文文档

缓存卷可以配置为使用备用名称,以便更好地控制缓存生命周期,如以下示例所示:Spring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<image>
						<buildCache>
							<volume>
								<name>cache-${project.artifactId}.build</name>
							</volume>
						</buildCache>
						<launchCache>
							<volume>
								<name>cache-${project.artifactId}.launch</name>
							</volume>
						</launchCache>
					</image>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

构建器和构建包在映像构建过程中需要一个位置来存储临时文件。 默认情况下,此临时生成工作区存储在命名卷中。Spring中文文档

可以将缓存和生成工作区配置为使用绑定装载而不是命名卷,如以下示例所示:Spring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<image>
						<buildWorkspace>
							<bind>
								<source>/tmp/cache-${project.artifactId}.work</source>
							</bind>
						</buildWorkspace>
						<buildCache>
							<bind>
								<source>/tmp/cache-${project.artifactId}.build</source>
							</bind>
						</buildCache>
						<launchCache>
							<bind>
								<source>/tmp/cache-${project.artifactId}.launch</source>
							</bind>
						</launchCache>
					</image>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

Docker 配置

minikube 的 Docker 配置

该插件可以与 minikube 提供的 Docker 守护进程进行通信,而不是默认的本地连接。Spring中文文档

在 Linux 和 macOS 上,可以在启动 minikube 后使用命令设置环境变量。eval $(minikube docker-env)Spring中文文档

该插件还可以通过提供类似于以下示例中所示的连接详细信息来配置为使用 minikube 守护程序:Spring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<docker>
						<host>tcp://192.168.99.100:2376</host>
						<tlsVerify>true</tlsVerify>
						<certPath>/home/user/.minikube/certs</certPath>
					</docker>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

podman 的 Docker 配置

该插件可以与 podman 容器引擎进行通信。Spring中文文档

通过提供类似于以下示例中所示的连接详细信息,可以将插件配置为使用 podman 本地连接:Spring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<docker>
						<host>unix:///run/user/1000/podman/podman.sock</host>
						<bindHostToBuilder>true</bindHostToBuilder>
					</docker>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
安装 CLI 后,该命令可用于获取此示例中所示的配置属性的值。colimapodman info --format='{{.Host.RemoteSocket.Path}}'docker.host

Colima 的 Docker 配置

该插件可以与 Colima 提供的 Docker 守护进程进行通信。 可以使用命令设置环境变量DOCKER_HOSTexport DOCKER_HOST=$(docker context inspect colima -f '{{.Endpoints.docker.Host}}').Spring中文文档

该插件还可以通过提供类似于以下示例中所示的连接详细信息来配置为使用 Colima 守护程序:Spring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<docker>
						<host>unix:///${user.home}/.colima/docker.sock</host>
					</docker>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

用于身份验证的 Docker 配置

如果生成器或运行映像存储在支持用户身份验证的专用 Docker 注册表中,则可以使用参数提供身份验证详细信息,如以下示例所示:docker.builderRegistrySpring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<docker>
						<builderRegistry>
							<username>user</username>
							<password>secret</password>
							<url>https://docker.example.com/v1/</url>
							<email>[email protected]</email>
						</builderRegistry>
					</docker>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

如果生成器或运行映像存储在支持令牌身份验证的专用 Docker 注册表中,则可以使用参数提供令牌值,如以下示例所示:docker.builderRegistrySpring中文文档

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<docker>
						<builderRegistry>
							<token>9cbaf023786cd7...</token>
						</builderRegistry>
					</docker>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
此配置不提供显式标记,因此使用。 也可以指定标记,可以使用 ,构建中可用的任何属性或硬编码版本。latest${project.version}
映像将发布到的注册表由映像名称的注册表部分确定(在这些示例中为)。 如果配置了凭据并包含参数,则此值将传递给注册表,但不用于确定发布注册表位置。docker.example.comdocker.publishRegistryurl
安装 CLI 后,该命令可用于获取此示例中所示的配置属性的值。colimapodman info --format='{{.Host.RemoteSocket.Path}}'docker.host