We’re pleased to announce the release of Buildahversion 1.30.0, which is now available from GitHub for any Linux distro. We are shipping this release on Fedora 37, Fedora 38, and Fedora 39. Buildah will also be shipped on CentOS, OpenSUSE, and Ubuntu soon. In addition, container images will be available at https://quay.io/repository/buildah/stable and https://quay.io/repository/containers/buildah.
The Buildah project has continued to grow over the past several weeks, welcoming several new contributors to the mix. This release features notable enhancements:
The login command now supports interspersed args
The --network option is now handled by RUN commands in Containerfiles.
The ARG command in a Containerfile will now honor any value passed, and environment variables work more intuitively in Containerfiles.
This release comprises changes made for v1.29.1 and v1.30.0 and will be included in Podman v4.5.
Release Changes
Changes for v1.30.0
Added a new CleanCacheMount API which allows cleaning of the buildcache generated on the host. #4552
The login command now supports interspersed args for password from stdin. I.e. $ cat password.txt | buildah login docker.io -u user --password-stdin#4558
Changes to cleanup routines ensure that orphaned stages and dangling containers are now appropriately removed. #4595
buildah build should no longer produce spurious “Pushing cache []:…” messages while building images.#4602
OCI images produced using multi-stage builds, where the final stage is based on an earlier stage, will no longer include an “org.opencontainers.image.base.name” annotation for the base of that earlier stage combined with an “org.opencontainers.image.base.digest” annotation which corresponds to the image produced by that earlier stage, which are two different images. #4618
Then ExtendedAgent now supports signing with flags as BuildKit does. #4637
The COPY command in a Containerfile will now honor any ARG value #4578
Buildah no longer warns about unused TARGETARCH,TARGETOS,TARGETPLATFORM variables #4634
Buildah container images now will inform users the list of capabilities they require, including CAP_SYS_CHROOT. #4643
The “ifnewer” option has been added to the help message for the pull1 command. The option had been added to the command prior. #4645
Buildah now only attempts to push the cache during a build only when the cacheKey is generated. #4650
Support has been added for inline --network options in Containerfile RUN statements. #4566
The build command now prints a 12-digit hash instead of an 11-digit hash upon successful completion. #4660
A fresh sysfs is now mounted when the netns is private #4684
The --build-arg-file {your-args} option in a Containerfile now allows specifying --build-args from a file instead of inline in the build command. #4686
Buildah now only applies a label on the final image during the build instead of all intermediate images#4673
The RUN --network=default command in a Containerfile is now ignored as it is in BuildKit. #4659
Process environment variables as passed by reference. The buildah run --env command will now lookup environment variables. Also, if --env A is passed and A is not defined, A will now remain unset rather than being set to blank. #4702
Overall Miscellaneous Changes
Documentation:
Fixed documentation on which Capabilities are allowed by default. #4584
[CI:BUILD] Packit: Enable Copr builds on PR and commit to main by @lsm5 in #4681
Replace Ubuntu macines with Debian machines in the CI #4610
Plus several minor fixes.
Try it Out.
If you haven’t yet, install Buildah from one of the Linux repos or GitHub and give it a spin. We’re betting you’ll find it’s an easy and quick way to build containers in your environment without a daemon being involved!
For those of you who contributed to this release, thank you very much for your contributions! If you haven’t joined our community yet, don’t wait any longer! Come join us on GitHub, where Open Source communities live.