buildah-manifest(1)
π buildah-manifest β the group chat for your manifest lists π
okay so bestie, welcome to buildah-manifest(1), from the General Commands Manual section. this is the page that tells you how to wrangle manifest lists and image indexes, and honestly? it's giving multi-arch main character energy. β¨
πΈ NAME πΈ
buildah-manifest β Create and manipulate manifest lists and image indexes.
π SYNOPSIS π
buildah manifest COMMAND [OPTIONS] [ARG...]
π¦ DESCRIPTION π¦
so the buildah manifest command is basically a whole friend group of subcommands, and together they can do all of this:
- Create a working Docker manifest list or OCI image index.
- Add an entry to a manifest list or image index for a specified image.
- Add an entry to an image index for an artifact manifest referring to a file.
- Add or update information about an entry in a manifest list or image index.
- Delete a working container or an image.
- Push a manifest list or image index to a registry or other location.
like, it does so much. periodt. π
π SUBCOMMANDS π
every subcommand has its own man page, and here's the whole roster, no skips, no cap:
addβ man page:buildah-manifest-add(1)β Add an image or artifact to a manifest list or image index.annotateβ man page:buildah-manifest-annotate(1)β Add or update information about an image or artifact in a manifest list or image index.createβ man page:buildah-manifest-create(1)β Create a manifest list or image index.existsβ man page:buildah-manifest-exists(1)β Check if a manifest list exists in local storage.inspectβ man page:buildah-manifest-inspect(1)β Display the contents of a manifest list or image index.pushβ man page:buildah-manifest-push(1)β Push a manifest list or image index to a registry or other location.removeβ man page:buildah-manifest-remove(1)β Remove an image from a manifest list or image index.rmβ man page:buildah-manifest-rm(1)β Remove manifest list from local storage.
π EXAMPLES π
π§ Building a multi-arch manifest list from a Containerfile
okay so assuming the Containerfile uses RUN instructions, the host needs a way to execute non-native binaries. configuring that is beyond the scope of this example, so don't come for me. but building a multi-arch manifest list shazam in parallel across 4-threads? literally can be done like this:
$ platarch=linux/amd64,linux/ppc64le,linux/arm64,linux/s390x
$ buildah build --jobs=4 --platform=$platarch --manifest shazam .
Note: the--jobsargument is optional, and the--manifestoption should be used instead of the-tor--tagoptions. iykyk. π
π Assembling a multi-arch manifest from separately built images
ok so assuming example.com/example/shazam:$arch images are built separately on other hosts and pushed to the example.com registry, they may be combined into a manifest list, and pushed using a simple loop:
$ REPO=example.com/example/shazam
$ buildah manifest create $REPO:latest
$ for IMGTAG in amd64 s390x ppc64le arm64; do
buildah manifest add $REPO:latest docker://$REPO:IMGTAG;
done
$ buildah manifest push --all $REPO:latest
Note: theaddinstruction argument order is<manifest>then<image>. also, the--allpush option is required to ensure all contents are pushed, not just the native platform/arch. do not forget this one bestie, it will humble you. π
π Removing and tagging a manifest list before pushing
special care is needed when removing and pushing manifest lists, as opposed to the contents. you almost always want to use the manifest rm and manifest push --all subcommands. for example, a rename and push could be performed like this:
$ buildah tag localhost/shazam example.com/example/shazam
$ buildah manifest rm localhost/shazam
$ buildah manifest push --all example.com/example/shazam
π₯ SEE ALSO π₯
buildah(1), buildah-manifest-create(1), buildah-manifest-add(1), buildah-manifest-remove(1), buildah-manifest-annotate(1), buildah-manifest-inspect(1), buildah-manifest-push(1), buildah-manifest-rm(1)
ok that's the whole page bestie, you ate that π«Ά this was buildah, from way back in September 2019, and you just finished reading buildah-manifest(1). slay, go build something multi-arch. π β¨
π¦ where this page comes from
- centos-stream 10: buildah 2:1.45.0-2.el10 Β· Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
- centos-stream 9: buildah 2:1.43.2-3.el9 Β· Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
- debian trixie: buildah 1.39.3+ds1-1+b7 Β· Apache-2.0
- fedora 43: buildah 2:1.41.5-1.fc43 Β· Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
- fedora 43: buildah 2:1.43.2-1.fc43
- fedora 43: buildah 2:1.43.4-1.fc43
- fedora 43: buildah 2:1.43.5-1.fc43 Β· Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
- fedora 44: buildah 2:1.43.0-1.fc44 Β· Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
- fedora 44: buildah 2:1.43.4-1.fc44
- fedora 44: buildah 2:1.43.5-1.fc44 Β· Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MPL-2.0
- opensuse-leap 16.0: buildah 1.39.5-160000.2.1 Β· Apache-2.0
- opensuse-leap 16.0: buildah 1.39.5-160000.2.1 Β· Apache-2.0
- opensuse-leap 16.0: buildah 1.39.5-160000.2.1 Β· Apache-2.0
- opensuse-leap 16.0: buildah 1.39.5-160000.2.1 Β· Apache-2.0
- ubuntu questing: buildah 1.39.3+ds1-1syncable1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms