1buildah-manifest(1) General Commands Manual buildah-manifest(1)
2
3
4
6 buildah-manifest - Create and manipulate manifest lists and image in‐
7 dexes.
8
9
11 buildah manifest COMMAND [OPTIONS] [ARG...]
12
13
15 The buildah manifest command provides subcommands which can be used to:
16
17
18 * Create a working Docker manifest list or OCI image index.
19 * Add an entry to a manifest list or image index for a specified image.
20 * Add or update information about an entry in a manifest list or image index.
21 * Delete a working container or an image.
22 * Push a manifest list or image index to a registry or other location.
23
24
25
27 ┌─────────┬──────────────────────────────┬─────────────────────┐
28 │Command │ Man Page │ Description │
29 ├─────────┼──────────────────────────────┼─────────────────────┤
30 │add │ buildah-manifest-add(1) │ Add an image to a │
31 │ │ │ manifest list or │
32 │ │ │ image index. │
33 ├─────────┼──────────────────────────────┼─────────────────────┤
34 │annotate │ buildah-manifest-annotate(1) │ Add or update in‐ │
35 │ │ │ formation about an │
36 │ │ │ image in a manifest │
37 │ │ │ list or image in‐ │
38 │ │ │ dex. │
39 ├─────────┼──────────────────────────────┼─────────────────────┤
40 │create │ buildah-manifest-create(1) │ Create a manifest │
41 │ │ │ list or image in‐ │
42 │ │ │ dex. │
43 ├─────────┼──────────────────────────────┼─────────────────────┤
44 │exists │ buildah-manifest-exists(1) │ Check if a manifest │
45 │ │ │ list exists in lo‐ │
46 │ │ │ cal storage. │
47 ├─────────┼──────────────────────────────┼─────────────────────┤
48 │inspect │ buildah-manifest-inspect(1) │ Display the con‐ │
49 │ │ │ tents of a manifest │
50 │ │ │ list or image in‐ │
51 │ │ │ dex. │
52 ├─────────┼──────────────────────────────┼─────────────────────┤
53 │push │ buildah-manifest-push(1) │ Push a manifest │
54 │ │ │ list or image index │
55 │ │ │ to a registry or │
56 │ │ │ other location. │
57 ├─────────┼──────────────────────────────┼─────────────────────┤
58 │remove │ buildah-manifest-remove(1) │ Remove an image │
59 │ │ │ from a manifest │
60 │ │ │ list or image in‐ │
61 │ │ │ dex. │
62 ├─────────┼──────────────────────────────┼─────────────────────┤
63 │rm │ buildah-manifest-rm(1) │ Remove manifest │
64 │ │ │ list from local │
65 │ │ │ storage. │
66 └─────────┴──────────────────────────────┴─────────────────────┘
67
69 Building a multi-arch manifest list from a Containerfile
70 Assuming the Containerfile uses RUN instructions, the host needs a way
71 to execute non-native binaries. Configuring this is beyond the scope
72 of this example. Building a multi-arch manifest list shazam in paral‐
73 lel across 4-threads can be done like this:
74
75
76 $ platarch=linux/amd64,linux/ppc64le,linux/arm64,linux/s390x
77 $ buildah build --jobs=4 --platform=$platarch --manifest shazam .
78
79
80
81 Note: The --jobs argument is optional, and the -t or --tag option
82 should not be used.
83
84
85 Assembling a multi-arch manifest from separately built images
86 Assuming example.com/example/shazam:$arch images are built separately
87 on other hosts and pushed to the example.com registry. They may be
88 combined into a manifest list, and pushed using a simple loop:
89
90
91 $ REPO=example.com/example/shazam
92 $ buildah manifest create $REPO:latest
93 $ for IMGTAG in amd64 s390x ppc64le arm64; do
94 buildah manifest add $REPO:latest docker://$REPO:IMGTAG;
95 done
96 $ buildah manifest push --all $REPO:latest
97
98
99
100 Note: The add instruction argument order is <manifest> then <image>.
101 Also, the --all push option is required to ensure all contents are
102 pushed, not just the native platform/arch.
103
104
105 Removing and tagging a manifest list before pushing
106 Special care is needed when removing and pushing manifest lists, as op‐
107 posed to the contents. You almost always want to use the manifest rm
108 and manifest push --all subcommands. For example, a rename and push
109 could be performed like this:
110
111
112 $ buildah tag localhost/shazam example.com/example/shazam
113 $ buildah manifest rm localhost/shazam
114 $ buildah manifest push --all example.com/example/shazam
115
116
117
119 buildah(1), buildah-manifest-create(1), buildah-manifest-add(1), buil‐
120 dah-manifest-remove(1), buildah-manifest-annotate(1), buildah-manifest-
121 inspect(1), buildah-manifest-push(1), buildah-manifest-rm(1)
122
123
124
125buildah September 2019 buildah-manifest(1)