=== Containers and FreeBSD: Cloud Native Buildpacks Contact: Robert Gogolok link:https://buildpacks.io/[Cloud Native Buildpacks (CNBs)] transform application source code into container images. Those images can run on any cloud. With buildpacks, organizations can concentrate the knowledge of container build best practices within a specialized team, instead of having application developers across the organization individually maintain their own Dockerfiles. A few weeks ago, I've started to look into FreeBSD support for buildpacks. My goal is to have working versions of the tools link:https://buildpacks.io/docs/for-platform-operators/concepts/lifecycle/[lifecycle] and link:https://buildpacks.io/docs/for-platform-operators/how-to/integrate-ci/pack/[pack] in the next few months. There were previous attempts to bring support for FreeBSD to buildpacks, for example to `lifecycle`: * link:https://github.com/buildpacks/lifecycle/pull/1087[Add support for FreeBSD #1087] * link:https://github.com/buildpacks/lifecycle/pull/1271[Add FreeBSD Support #1271] After looking into those changes, I've decided to first introduce some general cleanup steps to keep the required changes for FreeBSD small. This resulted in the following changes that were successfully integrated: * link:https://github.com/buildpacks/lifecycle/pull/1431[Remove obsolete // +build lines #1431] * link:https://github.com/buildpacks/lifecycle/pull/1432[Use unix build constraint #1432] * link:https://github.com/buildpacks/lifecycle/pull/1439[Support FreeBSD build phase #1439] With these steps, it is now possible to compile `lifecycle` under FreeBSD. The next steps are: - Provide missing FreeBSD functionality to `lifecycle`. - Further investigate FreeBSD as a build target in `lifecycle`. - Investigate and get the tool `pack` to compile and run under FreeBSD. - Provide `lifecycle` and/or `pack` via FreeBSD ports. - Investigate the idea of FreeBSD buildpacks for some popular languages, similar to link:https://paketo.io/[paketo buildpacks].