Leveraging Pack to increase speed and flexibility in Ketch

What is Pack?

Pack is a tool maintained by the Cloud Native Buildpacks Project that is used to build an OCI compliant image without the need for the user to define their own Dockerfile. To do this, Pack makes use of a builder that is composed of several buildpacks. These groups of buildpacks are tested against your code until a match is found, and then that match is used to build your application’s code. Each of the included buildpacks contributes to the application’s final image, like setting an environment variable or installing a dependency. In this sense, you can almost think of each buildpack as a separate command in a Dockerfile.

Why Pack?

Ketch already had the ability to build from source, but it required the use of an additional platform type specification to know what to use to build your application. Now, by leveraging Pack, Ketch is able to use builders to automatically build your application meaning no more platforms. The default builder is set to heroku/pack:20, which offers a wide range of buildpacks covering a large variety of code bases. In the event that the default does not fit your project, it is possible to specify a different builder using the optional — builder flag under the ketch app deploy command, which is now responsible for creating and deploying an app. Along with this, it is also possible to provide a list of additional buildpacks for a deployment with the optional — build-packsflag. While these additions alone add a great deal of flexibility to any source deployments, developers aren’t limited to the Cloud Native Computing Foundation approved builders and can provide their own builders and buildpacks.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Davis French

Davis French

I’m a backend developer with a strong interest in golang. Always looking for opportunities to learn inside and outside of coding.