github.com/containers/podman/v5@v5.1.0-rc1/docs/source/markdown/podman-manifest.1.md (about)

     1  % podman-manifest 1
     2  
     3  ## NAME
     4  podman\-manifest - Create and manipulate manifest lists and image indexes
     5  
     6  ## SYNOPSIS
     7  **podman manifest** *subcommand*
     8  
     9  ## DESCRIPTION
    10  The `podman manifest` command provides subcommands which can be used to:
    11  
    12      * Create a working Docker manifest list or OCI image index.
    13  
    14  ## SUBCOMMANDS
    15  
    16  | Command  | Man Page                                                     | Description                                                                              |
    17  | -------- | ------------------------------------------------------------ | ---------------------------------------------------------------------------------------- |
    18  | add      | [podman-manifest-add(1)](podman-manifest-add.1.md)           | Add an image or artifact to a manifest list or image index.                              |
    19  | annotate | [podman-manifest-annotate(1)](podman-manifest-annotate.1.md) | Add and update information about an image or artifact in a manifest list or image index. |
    20  | create   | [podman-manifest-create(1)](podman-manifest-create.1.md)     | Create a manifest list or image index.                                                   |
    21  | exists   | [podman-manifest-exists(1)](podman-manifest-exists.1.md)     | Check if the given manifest list exists in local storage                                 |
    22  | inspect  | [podman-manifest-inspect(1)](podman-manifest-inspect.1.md)   | Display a manifest list or image index.                                                  |
    23  | push     | [podman-manifest-push(1)](podman-manifest-push.1.md)         | Push a manifest list or image index to a registry.                                       |
    24  | remove   | [podman-manifest-remove(1)](podman-manifest-remove.1.md)     | Remove an image from a manifest list or image index.                                     |
    25  | rm       | [podman-manifest-rm(1)](podman-manifest-rm.1.md)             | Remove manifest list or image index from local storage.                                  |
    26  
    27  ## EXAMPLES
    28  
    29  ### Building a multi-arch manifest list from a Containerfile
    30  
    31  Assuming the `Containerfile` uses `RUN` instructions, the host needs
    32  a way to execute non-native binaries.  Configuring this is beyond
    33  the scope of this example.  Building a multi-arch manifest list
    34  `shazam` in parallel across 4-threads can be done like this:
    35  
    36          $ platarch=linux/amd64,linux/ppc64le,linux/arm64,linux/s390x
    37          $ podman build --jobs=4 --platform=$platarch --manifest shazam .
    38  
    39  **Note:** The `--jobs` argument is optional. Do not use the `podman build` command's `--tag` (or `-t`) option when building a multi-arch manifest list.
    40  
    41  ### Assembling a multi-arch manifest from separately built images
    42  
    43  Assuming `example.com/example/shazam:$arch` images are built separately
    44  on other hosts and pushed to the `example.com` registry.  They may
    45  be combined into a manifest list, and pushed using a simple loop:
    46  
    47          $ REPO=example.com/example/shazam
    48          $ podman manifest create $REPO:latest
    49          $ for IMGTAG in amd64 s390x ppc64le arm64; do \
    50                    podman manifest add $REPO:latest docker://$REPO:IMGTAG; \
    51                done
    52          $ podman manifest push --all $REPO:latest
    53  
    54  **Note:** The `add` instruction argument order is `<manifest>` then `<image>`.
    55  Also, the `--all` push option is required to ensure all contents are
    56  pushed, not just the native platform/arch.
    57  
    58  ### Removing and tagging a manifest list before pushing
    59  
    60  Special care is needed when removing and pushing manifest lists, as opposed
    61  to the contents.  You almost always want to use the `manifest rm` and
    62  `manifest push --all` subcommands.  For example, a rename and push can
    63  be performed like this:
    64  
    65          $ podman tag localhost/shazam example.com/example/shazam
    66          $ podman manifest rm localhost/shazam
    67          $ podman manifest push --all example.com/example/shazam
    68  
    69  
    70  ## SEE ALSO
    71  **[podman(1)](podman.1.md)**, **[podman-manifest-add(1)](podman-manifest-add.1.md)**, **[podman-manifest-annotate(1)](podman-manifest-annotate.1.md)**, **[podman-manifest-create(1)](podman-manifest-create.1.md)**, **[podman-manifest-inspect(1)](podman-manifest-inspect.1.md)**, **[podman-manifest-push(1)](podman-manifest-push.1.md)**, **[podman-manifest-remove(1)](podman-manifest-remove.1.md)**