Cloud Native Buildpacks: Getting Started with the `pack` CLI

Bryan Friedman

pack is a command line interface (CLI) tool that builds container images locally on your developer machine using Cloud Native Buildpacks.

Before You Begin

There are a few things you need to do before getting started with pack:

  • Install Docker Desktop. The pack CLI requires the Docker daemon, so you’ll need to have that installed and running locally.

  • Check out Containers 101 on KubeAcademy, particularly if you’ve never worked with containers or Docker before.

  • Follow the documentation for installing pack in your local environment.

Using pack

Build Image from Working Directory

To generate a container image, use pack build. The following commands will clone a sample Java repository, change to the app directory, and build the container image from this working directory.

git clone https://github.com/buildpacks/samples

cd samples/apps/java-maven

pack build myapp

Build Image from Specified Path

Alternatively, you may point to the app path using the -p option:

git clone https://github.com/buildpacks/samples

pack build myapp -p samples/apps/java-maven

Run Image Locally

After you’ve built your image locally, test it out with Docker using the following command:

docker run --rm -p 8080:8080 myapp

Visit localhost:8080 in your favorite browser to see the app running.

Publish Image to Repository

If you are logged into a container registry from your local machine via Docker Desktop, you can build your image and publish to a remote registry at the same time using the --publish option. Just make sure to clarify the username before the app name:

pack build username/myapp -p samples/apps/java-maven --publish