arconia image build buildpacks

The arconia image build buildpacks command builds a container image for your Spring Boot application using Cloud Native Buildpacks. It delegates to your build tool’s (Maven/Gradle) image build tasks to package your application as a container image, relying on the Spring Boot integration with Paketo Buildpacks.

How It Works

This approach does not require a Dockerfile: the buildpack automatically detects the application type, installs the appropriate runtime, and assembles the image following best practices for security and performance.

Prerequisites

  • An OCI container runtime (Podman or Docker) must be installed and running on your machine.

Usage

Basic usage:

arconia image build buildpacks

With a custom image name:

arconia image build buildpacks --image-name ghcr.io/arconia-io/configuration-service:1.0.0

Publish the image to a registry after building:

arconia image build buildpacks --image-name ghcr.io/arconia-io/configuration-service --publish-image

Build for a specific platform:

arconia image build buildpacks --image-platform linux/amd64

Build a multi-arch image for multiple platforms:

arconia image build buildpacks \
  --image-name ghcr.io/arconia-io/configuration-service:1.0.0 \
  --image-platform linux/amd64 \
  --image-platform linux/arm64 \
  --publish-image

Build with a clean Buildpacks cache:

arconia image build buildpacks --clean-cache

Pass extra parameters to the underlying build tool using --:

arconia image build buildpacks -- --stacktrace
arconia image build buildpacks -- -DmyProperty=value

Options

The following options are available:

Option Default Description

--image-name

Name (and optionally tag) for the image to build. For example: ghcr.io/arconia-io/configuration-service:1.0.0.

--builder-image

Name of the Buildpacks Builder image to use (e.g. docker.io/paketobuildpacks/builder-noble-java-tiny). Defaults to the builder configured in your Spring Boot build plugin.

--run-image

Name of the Buildpacks Run image to use (e.g. docker.io/paketobuildpacks/ubuntu-noble-run-tiny). Defaults to the Run image configured in the Builder image. Override this to change the base image of the produced container image, for example, to use a distroless or hardened Run image.

--clean-cache

false

Whether to clean the Buildpacks local cache before building. Useful when troubleshooting caching issues.

--publish-image

false

Whether to publish the generated image to an OCI registry after building. Make sure you are authenticated with the target registry (e.g., podman login ghcr.io) before using this option.

--image-platform

Platform(s) for the image to build (e.g., linux/amd64, linux/arm64). When a single platform is specified, it is passed to the build tool. When multiple platforms are specified, a separate image is built for each platform, and a multi-arch OCI image index (manifest list) is assembled and pushed to the registry. Requires --publish-image when using multiple platforms.

--clean

false

Perform a clean build of the application before building the image.

--skip-tests

false

Skip tests during the application build.

--verbose or -v

false

Include verbose output.

--help or -h

Display help information for the command.

To push the image to a registry using --publish-image, authenticate first (e.g., podman login ghcr.io). Registry credentials can also be configured in your Spring Boot build plugin for CI/CD environments.

Build Tool Integration

The command automatically detects whether your project uses Maven or Gradle and runs the appropriate image build task:

Build Tool Command

Gradle

  • ./gradlew bootBuildImage (Linux/macOS with wrapper)

  • gradle bootBuildImage (Linux/macOS without wrapper)

  • gradlew.bat bootBuildImage (Windows with wrapper)

  • gradle bootBuildImage (Windows without wrapper)

Maven

  • ./mvnw spring-boot:build-image (Linux/macOS with wrapper)

  • mvn spring-boot:build-image (Linux/macOS without wrapper)

  • mvnw.cmd spring-boot:build-image (Windows with wrapper)

  • mvn spring-boot:build-image (Windows without wrapper)

  • mvnd spring-boot:build-image (Using Maven Daemon)

Use -- to pass parameters directly to the underlying build tool. The -- separator is required to distinguish Arconia CLI options from build tool parameters.

Multi-Architecture Images

When you specify multiple platforms with --image-platform, the CLI orchestrates a multi-arch image build:

  1. For each platform, it builds a platform-specific image (tagged with a -<os>-<arch> suffix, e.g., my-app:1.0.0-linux-amd64).

  2. Each platform-specific image is published to the registry.

  3. An OCI image index (manifest list) is created that references all platform-specific images and is pushed to the registry under the original tag.

This means consumers can pull the image by its base tag (e.g., my-app:1.0.0) and their container runtime will automatically select the correct platform-specific image.

arconia image build buildpacks \
  --image-name ghcr.io/arconia-io/configuration-service:1.0.0 \
  --image-platform linux/amd64 linux/arm64 \
  --publish-image
Multi-arch builds require --publish-image because the OCI image index must be assembled from manifests already present in a registry.