Add support for caching to bind mounts when building images
When building an image using the Maven `spring-boot:build-image` goal or the Gradle `bootBuildImage` task, the build and launch caches can be configured to use a bind mount as an alternative to using a named volume. Closes gh-28387
This commit is contained in:
@@ -34,6 +34,7 @@ import org.springframework.boot.buildpack.platform.docker.type.Binding;
|
||||
import org.springframework.boot.buildpack.platform.docker.type.ImageReference;
|
||||
import org.springframework.boot.buildpack.platform.io.Owner;
|
||||
import org.springframework.boot.buildpack.platform.io.TarArchive;
|
||||
import org.springframework.boot.maven.CacheInfo.BindCacheInfo;
|
||||
import org.springframework.boot.maven.CacheInfo.VolumeCacheInfo;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -170,21 +171,37 @@ class ImageTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
void getBuildRequestWhenHasBuildVolumeCacheUsesCache() {
|
||||
void getBuildRequestWhenHasBuildCacheVolumeUsesCache() {
|
||||
Image image = new Image();
|
||||
image.buildCache = new CacheInfo(new VolumeCacheInfo("build-cache-vol"));
|
||||
image.buildCache = CacheInfo.fromVolume(new VolumeCacheInfo("build-cache-vol"));
|
||||
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
|
||||
assertThat(request.getBuildCache()).isEqualTo(Cache.volume("build-cache-vol"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void getBuildRequestWhenHasLaunchVolumeCacheUsesCache() {
|
||||
void getBuildRequestWhenHasLaunchCacheVolumeUsesCache() {
|
||||
Image image = new Image();
|
||||
image.launchCache = new CacheInfo(new VolumeCacheInfo("launch-cache-vol"));
|
||||
image.launchCache = CacheInfo.fromVolume(new VolumeCacheInfo("launch-cache-vol"));
|
||||
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
|
||||
assertThat(request.getLaunchCache()).isEqualTo(Cache.volume("launch-cache-vol"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void getBuildRequestWhenHasBuildCacheBindUsesCache() {
|
||||
Image image = new Image();
|
||||
image.buildCache = CacheInfo.fromBind(new BindCacheInfo("build-cache-dir"));
|
||||
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
|
||||
assertThat(request.getBuildCache()).isEqualTo(Cache.bind("build-cache-dir"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void getBuildRequestWhenHasLaunchCacheBindUsesCache() {
|
||||
Image image = new Image();
|
||||
image.launchCache = CacheInfo.fromBind(new BindCacheInfo("launch-cache-dir"));
|
||||
BuildRequest request = image.getBuildRequest(createArtifact(), mockApplicationContent());
|
||||
assertThat(request.getLaunchCache()).isEqualTo(Cache.bind("launch-cache-dir"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void getBuildRequestWhenHasCreatedDateUsesCreatedDate() {
|
||||
Image image = new Image();
|
||||
|
||||
Reference in New Issue
Block a user