Build an app

Build is the process of executing one or more buildpacks against the app’s source code to produce a runnable OCI image.

Building an app using Cloud Native Buildpacks is as easy as 1, 2, 3

1. Select a builder

To build an app you must first decide which builder you’re going to use. A builder includes the buildpacks that will be used as well as the environment for building your app.

When using pack, you can run pack builder suggest for a list of suggested builders.

pack builder suggest

For this guide we’re actually going to use a sample builder, cnbs/sample-builder:bionic, which is not listed as a suggested builder for good reason. It’s a sample.

2. Build your app

Now that you’ve decided on what builder to use, we can build our app. For this example we’ll use our samples repo for simplicity.

  1. Check that the samples repo exists and if not - we clone it
ls samples || git clone https://github.com/buildpacks/samples
  1. Build the app
pack build sample-app --path samples/apps/java-maven --builder cnbs/sample-builder:bionic

TIP: If you don’t want to keep specifying a builder every time you build, you can set it as your default builder by running pack config default-builder <BUILDER> for example pack config default-builder cnbs/sample-builder:bionic

3. Run it

docker run --rm -p 8080:8080 sample-app

Congratulations!

The app should now be running and accessible via localhost:8080.

What about ARM apps?

Linux ARM image builds are now supported!

Linux ARM build guide

What about Windows apps?

Windows image builds are now supported!

Windows build guide