Skip to content

Validation of deprecated io.buildpacks.stack.id is too aggressive #51166

Description

@kevin-wimmer

Starting with Ubuntu Resolute, Paketo no longer provides "tiny" builder images. The recommendation from the Paketo team is to use one of the standard builders with a "tiny" run image. However, validation performed by org.springframework.boot.buildpack.platform.build.Builder (see "assertStackIdsMatch" method) prevents use of the "tiny" run image with any Paketo builder (because no builder matches stack id "io.buildpacks.stacks.resolute.tiny").

Expected Behavior

Spring Boot builds docker images via the Gradle bootBuildImage task using the "paketobuildpacks/ubuntu-resolute-builder" and "paketobuildpacks/ubuntu-resolute-run-tiny" images.

Current Behavior

The build fails with the following error:
Run image stack 'io.buildpacks.stacks.resolute.tiny' does not match builder stack 'io.buildpacks.stacks.resolute'

Possible Solution (Short Term)

Relax validation to allow images where the stack id of the run image starts with the stack id of the builder.

Possible Solution (Long Term)

Avoid the use of stack ids altogether--stack ids have been deprecated as of Platform API 0.12 and Buildpack API 0.10. Either remove validation entirely or change validation to match container metadata like "io.buildpacks.base.distro.name" and/or "io.buildpacks.base.distro.version."

Metadata

Metadata

Labels

status: supersededAn issue that has been superseded by anothertype: bugA general bug

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions