DEV Community

Eduardo Issao Ito
Eduardo Issao Ito

Posted on

2

Changing the base Linux image in spring-boot:build-image

The spring-boot-maven-plugin can create an OCI image from a jar or war file using Cloud Native Buildpacks.

By default it uses a builder called paketobuildpacks/builder:base which is based on Ubuntu 18.04 and is suitable for running a Spring Boot application.

But you can choose another builder, for example:

  • paketobuildpacks/builder:tiny is a lot smaller because it has the minimum requirements to run you application, even sh is absent (you can't open a terminal in this image)
  • paketobuildpacks/builder:full its the oposite of tiny, containing a lot of tools and commands.
  • paketobuildpacks/builder-jammy-base is based on Ubuntu 22.04

The list of all builders is available in Paketo Builders Reference.

It's just a matter of configuring the builder in pom.xml:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <image>
            <builder>paketobuildpacks/builder-jammy-tiny</builder>
        </image>
    </configuration>
</plugin>
Enter fullscreen mode Exit fullscreen mode

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (1)

Collapse
 
wldomiciano profile image
Wellington Domiciano

Awesome! Thanks for the tip

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay