spring-projects / spring-boot

Spring Boot helps you to create Spring-powered, production-grade applications and services with absolute minimum fuss.
https://spring.io/projects/spring-boot
Apache License 2.0
75.33k stars 40.72k forks source link

Cannot package OCI image when 'docker.io/paketobuildpacks/new-relic' is provided as a buildpack #43126

Closed RobertoGraham closed 1 week ago

RobertoGraham commented 1 week ago

Spring Boot version: 3.2.6. Docker Engine version: 27.3.1.

When running Spring Boot Gradle Plugin's bootBuildImage task while providing the alternate set of buildpacks below, I observe a failure. Reproducer: https://github.com/RobertoGraham/spring-boot-buildpack-bug/tree/31900583887eb0a05730d89b50a1acaecb9eb822.

tasks.named<BootBuildImage>("bootBuildImage") {
    buildpacks.set(listOf("urn:cnb:builder:paketo-buildpacks/java", "docker.io/paketobuildpacks/new-relic"))
    bindings.set(listOf("${layout.projectDirectory.dir("paketo-bindings")}:/platform/bindings"))
}
> Task :bootBuildImage
Building image 'docker.io/library/spring-boot-buildpack-bug:latest'

 > Pulling builder image 'docker.io/paketobuildpacks/builder-jammy-base:latest' ..................................................
 > Pulled builder image 'paketobuildpacks/builder-jammy-base@sha256:cc091c78cabb481e6abe97b1ae410993a028074a973eae9964e9271c59a8b08d'
 > Pulling run image 'docker.io/paketobuildpacks/run-jammy-base:latest' ..................................................
 > Pulled run image 'paketobuildpacks/run-jammy-base@sha256:8239d931b73e87afc5c9f446d89f6cc225bc0c4d0aed80c98312636e90254b28'
 > Pulling buildpack image 'docker.io/paketobuildpacks/new-relic:latest' ..................................................
 > Pulled buildpack image 'paketobuildpacks/new-relic@sha256:a33bac27dbe13d0f93da3719b235e3664b1fd016f124caedea44997d0e1d990a'
 > Executing lifecycle version v0.20.3
 > Using build cache volume 'pack-cache-0daef3812104.build'

 > Running creator
    [creator]     ===> ANALYZING
    [creator]     Image with name "docker.io/library/spring-boot-buildpack-bug:latest" not found
    [creator]     ===> DETECTING
    [creator]     ERROR: failed to initialize detector: open /cnb/buildpacks/paketo-buildpacks_new-relic/9.3.0/buildpack.toml: no such file or directory

> Task :bootBuildImage FAILED
mhalbritter commented 1 week ago

Does this work when building the image with pack?

RobertoGraham commented 1 week ago

Does this work when building the image with pack?

@mhalbritter, yes, running this command in the root of my reproducer repository works: pack build --builder paketobuildpacks/builder-jammy-base --buildpack paketo-buildpacks/java --buildpack docker.io/paketobuildpacks/new-relic --trust-extra-buildpacks --volume $(pwd)/paketo-bindings:/platform/bindings spring-boot-buildpack-bug.

scottfrederick commented 1 week ago

Possibly related to https://github.com/spring-projects/spring-boot/issues/39323#issuecomment-2441939885

philwebb commented 1 week ago

We have a couple of issues causing this. The first is that we don't support nested index (as documented here). The second is the media type seems to have changed in the manifest fromtar.gzip to tar+gzip.