封裝 OCI 映像檔
此外掛程式可以使用 Cloud Native Buildpacks (CNB),從 jar 或 war 檔案建立 OCI 映像檔。映像檔可以使用 build-image
目標在命令列上建置。這可確保在建立映像檔之前,套件生命週期已執行。
基於安全性考量,映像檔會以非 root 使用者身分建置和執行。如需更多詳細資訊,請參閱 CNB 規格。 |
最簡單的入門方式是在專案上叫用 mvn spring-boot:build-image
。可以自動化在叫用 package
階段時建立映像檔,如下列範例所示
<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-fork 。此目標與 build-image 類似,但不 fork 生命週期以確保 package 已執行。在本節的其餘部分,build-image 用於指稱 build-image 或 build-image-no-fork 目標。 |
雖然 buildpack 從 可執行歸檔 執行,但不需要先執行 repackage 目標,因為可執行歸檔會在必要時自動建立。當 build-image 重新封裝應用程式時,它會套用與 repackage 目標相同的設定,也就是可以使用其中一個排除選項來排除依賴項。spring-boot-devtools 和 spring-boot-docker-compose 模組預設會自動排除 (您可以使用 excludeDevtools 和 excludeDockerCompose 屬性來控制此行為)。 |
Docker Daemon
build-image
目標需要存取 Docker daemon。此目標將檢查本機 Docker CLI 組態檔案,以判斷目前的 context,並使用 context 連線資訊與 Docker daemon 通訊。如果無法判斷目前的 context,或 context 沒有連線資訊,則此目標將使用預設的本機連線。這適用於所有支援平台上的 Docker Engine,無需組態。
可以設定環境變數,以組態 build-image
目標以使用替代的本機或遠端連線。下表顯示環境變數及其值
環境變數 | 描述 |
---|---|
DOCKER_CONFIG |
Docker CLI 的位置 組態檔案,用於判斷目前的 context (預設為 |
DOCKER_CONTEXT |
應使用的 context 名稱,以從 Docker CLI 組態檔案擷取主機資訊 (覆寫 |
DOCKER_HOST |
包含 Docker daemon 的主機和埠的 URL - 例如 |
DOCKER_TLS_VERIFY |
設定為 |
DOCKER_CERT_PATH |
HTTPS 的憑證和金鑰檔案路徑 (如果 |
Docker daemon 連線資訊也可以使用外掛程式組態中的 docker
參數提供。下表摘要說明可用的參數
參數 | 描述 |
---|---|
|
|
|
包含 Docker daemon 的主機和埠的 URL - 例如 |
|
設定為 |
|
HTTPS 的憑證和金鑰檔案路徑 (如果 |
|
當 |
如需更多詳細資訊,另請參閱範例。
Docker Registry
如果由 builder
或 runImage
參數指定的 Docker 映像檔儲存在需要驗證的私有 Docker 映像檔登錄中,則可以使用 docker.builderRegistry
參數提供驗證憑證。
如果產生的 Docker 映像檔要發佈到 Docker 映像檔登錄,則可以使用 docker.publishRegistry
參數提供驗證憑證。
提供參數以進行使用者驗證或身分識別權杖驗證。請參閱用於儲存映像檔的 Docker 登錄文件,以取得有關支援的驗證方法的更多資訊。
下表摘要說明 docker.builderRegistry
和 docker.publishRegistry
的可用參數
參數 | 描述 |
---|---|
|
Docker 映像檔登錄使用者的使用者名稱。使用者驗證為必要項目。 |
|
Docker 映像檔登錄使用者的密碼。使用者驗證為必要項目。 |
|
Docker 映像檔登錄的位址。使用者驗證為選用項目。 |
|
Docker 映像檔登錄使用者的電子郵件地址。使用者驗證為選用項目。 |
|
Docker 映像檔登錄使用者的身分識別權杖。權杖驗證為必要項目。 |
如需更多詳細資訊,另請參閱範例。
映像檔自訂
此外掛程式會叫用 builder 來協調映像檔的產生。builder 包含多個 buildpack,這些 buildpack 可以檢查應用程式以影響產生的映像檔。預設情況下,此外掛程式會選擇 builder 映像檔。產生的映像檔名稱會從專案屬性中推斷出來。
image
參數允許組態 builder 及其應如何對專案運作。下表摘要說明可用的參數及其預設值
參數 / (使用者屬性) | 描述 | 預設值 |
---|---|---|
|
要使用的 Builder 映像檔名稱。 |
|
|
要使用的執行映像檔名稱。 |
無預設值,表示應使用 Builder 中繼資料中指定的執行映像檔。 |
|
產生之映像檔的 映像檔名稱。 |
|
|
用於判斷何時從登錄檔提取 builder 和執行映像檔的 原則。可接受的值為 |
|
|
應傳遞至 builder 的環境變數。 |
|
|
builder 在建置映像檔時應使用的 Buildpack。只會使用指定的 buildpack,覆寫 builder 中包含的預設 buildpack。Buildpack 參考必須採用下列其中一種形式
|
無,表示 builder 應使用其中包含的 buildpack。 |
|
應在建置映像檔時掛載到 builder 容器的 磁碟區繫結掛載。繫結將在建立 builder 容器時,以未剖析和未驗證的方式傳遞至 Docker。繫結必須採用下列其中一種形式
其中
|
|
network + ( |
網路驅動程式,builder 容器將組態為使用此驅動程式。提供的值將在建立 builder 容器時,以未驗證的方式傳遞至 Docker。 |
|
cleanCache + ( |
是否在建置前清除快取。 |
|
|
啟用 builder 作業的詳細記錄。 |
|
publish + ( |
是否將產生的映像檔發佈到 Docker 登錄檔。 |
|
|
要套用至產生之映像檔的一個或多個額外標籤。提供給 |
|
|
builder 和 buildpack 將用於在映像檔建置期間儲存檔案的暫時工作區。此值可以是具名磁碟區或繫結掛載位置。 |
Docker daemon 中的具名磁碟區,其名稱衍生自映像檔名稱。 |
|
包含由 buildpack 建立且由映像檔建置程序使用的圖層的快取。此值可以是具名磁碟區或繫結掛載位置。 |
Docker daemon 中的具名磁碟區,其名稱衍生自映像檔名稱。 |
|
包含由 buildpack 建立且由映像檔啟動程序使用的圖層的快取。此值可以是具名磁碟區或繫結掛載位置。 |
Docker daemon 中的具名磁碟區,其名稱衍生自映像檔名稱。 |
|
將用於設定產生之映像檔中繼資料中 |
啟用 建置可重現性的固定日期。 |
|
應用程式內容將上傳到 builder 映像檔中之目錄的路徑。應用程式內容也會位於產生之映像檔中的此位置。 |
|
|
將套用至 builder 容器的 安全性選項,以字串值陣列形式提供 |
Linux 和 macOS 上的 |
此外掛程式會使用編譯器的外掛程式組態或 maven.compiler.target 屬性偵測專案的目標 Java 相容性。使用預設 Paketo builder 和 buildpack 時,此外掛程式會指示 buildpack 安裝相同的 Java 版本。您可以覆寫此行為,如builder 組態範例所示。 |
如需更多詳細資訊,另請參閱範例。
標籤格式
提供給 tags
選項的值應為完整映像檔參考。可接受的格式為 [domainHost:port/][path/]name[:tag][@digest]
。
如果網域遺失,則預設為 docker.io
。如果路徑遺失,則預設為 library
。如果標籤遺失,則預設為 latest
。
一些範例
-
my-image
會產生映像檔參考docker.io/library/my-image:latest
-
my-repository/my-image
會產生docker.io/my-repository/my-image:latest
-
example.com/my-repository/my-image:1.0.0
將按原樣使用
spring-boot:build-image
org.springframework.boot:spring-boot-maven-plugin:3.3.5
使用 buildpack 將應用程式封裝到 OCI 映像檔中,fork 生命週期以確保 package
已執行。此目標適用於命令列叫用。如果您需要在您的建置中組態目標 execution
,請改用 build-image-no-fork
。
參數詳細資訊
excludeDevtools
從重新封裝的歸檔中排除 Spring Boot 開發工具。
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
excludeDockerCompose
從重新封裝的歸檔中排除 Spring Boot 開發服務。
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
excludeGroupIds
要排除的 groupId 名稱的逗號分隔清單 (完全符合)。
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
excludes
要排除的成品定義集合。Exclude
元素定義必要 groupId
和 artifactId
元件,以及選用 classifier
元件。當組態為屬性時,值應以逗號分隔,並以冒號分隔元件:groupId:artifactId,groupId:artifactId:classifier
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
image
映像檔組態,具有 builder
、runImage
、name
、env
、cleanCache
、verboseLogging
、pullPolicy
和 publish
選項。
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
includes
要包含的成品定義集合。Include
元素定義必要 groupId
和 artifactId
元件,以及選用 classifier
元件。當組態為屬性時,值應以逗號分隔,並以冒號分隔元件:groupId:artifactId,groupId:artifactId:classifier
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
layout
歸檔的類型 (對應於依賴項在其中配置的方式)。可能的值為 JAR
、WAR
、ZIP
、DIR
、NONE
。預設為根據歸檔類型猜測。
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
layoutFactory
如果未設定明確的版面配置,則將用於建立可執行歸檔的版面配置 factory。替代的版面配置實作可由協力廠商提供。
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
spring-boot:build-image-no-fork
org.springframework.boot:spring-boot-maven-plugin:3.3.5
使用 buildpack 將應用程式封裝到 OCI 映像檔中,但不 fork 生命週期。當在您的建置中組態目標 execution
時,應使用此目標。若要在命令列上叫用目標,請改用 build-image
。
參數詳細資訊
excludeDevtools
從重新封裝的歸檔中排除 Spring Boot 開發工具。
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
excludeDockerCompose
從重新封裝的歸檔中排除 Spring Boot 開發服務。
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
excludeGroupIds
要排除的 groupId 名稱的逗號分隔清單 (完全符合)。
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
excludes
要排除的成品定義集合。Exclude
元素定義必要 groupId
和 artifactId
元件,以及選用 classifier
元件。當組態為屬性時,值應以逗號分隔,並以冒號分隔元件:groupId:artifactId,groupId:artifactId:classifier
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
image
映像檔組態,具有 builder
、runImage
、name
、env
、cleanCache
、verboseLogging
、pullPolicy
和 publish
選項。
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
includes
要包含的成品定義集合。Include
元素定義必要 groupId
和 artifactId
元件,以及選用 classifier
元件。當組態為屬性時,值應以逗號分隔,並以冒號分隔元件:groupId:artifactId,groupId:artifactId:classifier
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
layout
歸檔的類型 (對應於依賴項在其中配置的方式)。可能的值為 JAR
、WAR
、ZIP
、DIR
、NONE
。預設為根據歸檔類型猜測。
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
layoutFactory
如果未設定明確的版面配置,則將用於建立可執行歸檔的版面配置 factory。替代的版面配置實作可由協力廠商提供。
名稱 |
|
---|---|
類型 |
|
預設值 |
|
使用者屬性 |
|
自 |
|
範例
自訂映像檔 Builder
如果您需要自訂用於建立映像檔的 builder,或用於啟動建置之映像檔的執行映像檔,請組態此外掛程式,如下列範例所示
<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-builder
和標籤為 latest
的 builder 映像檔,以及名稱為 mine/java-cnb-run
和標籤為 latest
的執行映像檔。
builder 和執行映像檔也可以在命令列上指定,如此範例所示
$ mvn spring-boot:build-image -Dspring-boot.build-image.builder=mine/java-cnb-builder -Dspring-boot.build-image.runImage=mine/java-cnb-run
Builder 組態
如果 builder 使用環境變數公開組態選項,則可以使用 env
屬性來設定這些選項。
<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 daemon 在其中執行的 builder 與 buildpack 從中下載成品的網路位置之間存在網路 Proxy,則您需要組態 builder 以使用 Proxy。當使用 Paketo builder 時,可以藉由設定 HTTPS_PROXY
和/或 HTTP_PROXY
環境變數來完成此作業,如下列範例所示
<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 buildpack 藉由設定 JAVA_TOOL_OPTIONS
環境變數來組態 JVM 執行時期環境。當應用程式映像檔在容器中啟動時,可以修改 buildpack 提供的 JAVA_TOOL_OPTIONS
值來自訂 JVM 執行時期行為。
應儲存在映像檔中並套用至每次部署的環境變數修改,可以如 Paketo 文件中所述設定,並如下列範例所示
<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>
自訂映像檔名稱
預設情況下,映像檔名稱是從專案的 artifactId
和 version
推斷而來,類似 docker.io/library/${project.artifactId}:${project.version}
。您可以控制名稱,如下列範例所示
<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} 、建置中可用的任何屬性或硬式編碼版本。 |
映像檔名稱也可以在命令列上指定,如此範例所示
$ mvn spring-boot:build-image -Dspring-boot.build-image.imageName=example.com/library/my-app:v1
Buildpack
預設情況下,builder 將使用 builder 映像檔中包含的 buildpack,並以預先定義的順序套用它們。可以提供替代的 buildpack 集合,以套用 builder 中未包含的 buildpack,或變更包含之 buildpack 的順序。當提供一個或多個 buildpack 時,將只會套用指定的 buildpack。
下列範例指示 builder 使用封裝在 .tgz
檔案中的自訂 buildpack,然後使用 builder 中包含的 buildpack。
<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>
Buildpack 可以採用下列任何一種形式指定。
位於 CNB Builder 中的 buildpack (如果 builder 中只有一個符合 buildpack-id
的 buildpack,則可以省略版本)
-
urn:cnb:builder:buildpack-id
-
urn:cnb:builder:[email protected]
-
buildpack-id
目錄路徑,其中包含 buildpack 內容 (Windows 上不支援)
-
file:///path/to/buildpack/
-
/path/to/buildpack/
gzipped tar 檔案的路徑,其中包含 buildpack 內容
-
file:///path/to/buildpack.tgz
-
/path/to/buildpack.tgz
OCI 映像檔,其中包含 封裝的 buildpack
-
docker://example/buildpack
-
docker:///example/buildpack:latest
-
docker:///example/buildpack@sha256:45b23dee08…
-
example/buildpack
-
example/buildpack:latest
-
example/buildpack@sha256:45b23dee08…
映像檔發佈
可以藉由啟用 publish
選項,將產生的映像檔發佈到 Docker 登錄檔。
如果 Docker 登錄檔需要驗證,則可以使用 docker.publishRegistry
參數組態憑證。如果 Docker 登錄檔不需要驗證,則可以省略 docker.publishRegistry
組態。
映像檔將發佈到的登錄檔,由映像檔名稱的登錄檔部分判斷 (在這些範例中為 docker.example.com )。如果已組態 docker.publishRegistry 憑證且包含 url 參數,則此值會傳遞至登錄檔,但不會用於判斷發佈登錄檔位置。 |
<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>
publish
選項也可以在命令列上指定,如此範例所示
$ mvn spring-boot:build-image -Dspring-boot.build-image.imageName=docker.example.com/library/my-app:v1 -Dspring-boot.build-image.publish=true
當在命令列上搭配驗證使用 publish
選項時,您可以使用屬性提供憑證,如此範例所示
$ 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 配置中的屬性
<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>
建構器快取和工作區配置
CNB 建構器快取在建構和啟動映像時使用的層。預設情況下,這些快取以具名卷冊的形式儲存在 Docker daemon 中,其名稱衍生自目標映像的完整名稱。如果映像名稱頻繁變更,例如當專案版本用作映像名稱中的標籤時,則快取可能會頻繁失效。
可以將快取卷冊配置為使用替代名稱,以便更精確地控制快取生命週期,如下列範例所示
<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>
建構器和 buildpack 需要一個位置來儲存映像建構期間的暫存檔案。預設情況下,此暫存建構工作區儲存在具名卷冊中。
快取和建構工作區可以配置為使用繫結掛載而不是具名卷冊,如下列範例所示
<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 daemon 通訊,而不是預設的本機連線。
在 Linux 和 macOS 上,可以在 minikube 啟動後使用命令 eval $(minikube docker-env)
設定環境變數。
此外掛程式也可以配置為使用 minikube daemon,方法是提供類似於以下範例中所示的連線詳細資訊
<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 容器引擎 通訊。
此外掛程式可以配置為使用 podman 本機連線,方法是提供類似於以下範例中所示的連線詳細資訊
<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>
安裝 colima CLI 後,可以使用命令 podman info --format='{{.Host.RemoteSocket.Path}}' 來取得此範例中顯示的 docker.host 配置屬性的值。 |
適用於 Colima 的 Docker 配置
此外掛程式可以與 Colima 提供的 Docker daemon 通訊。可以使用以下命令設定 DOCKER_HOST
環境變數
$ export DOCKER_HOST=$(docker context inspect colima -f '{{.Endpoints.docker.Host}}')
此外掛程式也可以配置為使用 Colima daemon,方法是提供類似於以下範例中所示的連線詳細資訊
<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.builderRegistry
參數提供驗證詳細資訊,如下列範例所示
<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.builderRegistry
參數提供權杖值,如下列範例所示
<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>