我刚刚开始将Spring Boot 2.3与Layer jar和build pack功能一起使用。
Docker映像始终在构建时
但是,这将减慢构建过程,如何控制构建映像的阶段以及如何控制是否应完全构建映像?
以下是添加到pom文件的配置
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layers>
<enabled>true</enabled>
</layers>
<image>
<name>${image.name}</name>
<env>
<BP_JVM_VERSION>${BP_JVM_VERSION}</BP_JVM_VERSION>
</env>
</image>
</configuration>
<executions>
<execution>
<goals>
<goal>build-image</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
答案 0 :(得分:1)
您可以使用spring-boot.build-image.skip
属性
将其添加到具有PLAY [all] *******************************************************************************************************
TASK [set_fact] **************************************************************************************************
ok: [localhost]
TASK [debug] *****************************************************************************************************
ok: [localhost] => {
"pod_events": [
{
"count": 1,
"firstTimestamp": "2020-10-27 10:00:00",
"lastTimestamp": "2020-10-27 12:00:00",
"message": "some message",
"reason": "some reason"
}
]
}
PLAY RECAP *******************************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
值的属性中
true
因此默认情况下将跳过<properties>
<spring-boot.build-image.skip>true</spring-boot.build-image.skip>
</properties>
目标。每当您要构建图像时,将build-image
传递到cmd
false
更新:
如果要将阶段从mvn clean install -Dspring-boot.build-image.skip=false
更改为install
,则需要按以下方式配置插件:
package
答案 1 :(得分:1)
默认情况下,build-image
目标已附加到package
阶段。由于pom.xml中具有package
配置,因此每次运行executions
目标时都会运行它:
<executions>
<execution>
<goals>
<goal>build-image</goal>
</goals>
</execution>
</executions>
如果删除此<executions>
块,build-image
将不会自动运行,但可以与mvn spring-boot:build-image
一起手动运行。
或者,您可以通过在install
块中指定阶段,将目标附加到<execution>
这样的不同阶段:
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>build-image</goal>
</goals>
</execution>
</executions>