mirror of
https://github.com/containers/podman.git
synced 2025-10-27 19:34:13 +08:00
When doing a podman images, manifests lists look just like images, so it is logical that users would assume that they can just podman push them to a registry. The problem is we throw out weird errors when this happens and users need to somehow figure out this is a manifest list rather then an image, and frankly the user will not understand the difference. This PR will make podman push just do the right thing, by failing over and attempting to push the manifest if it fails to push the image. Fix up handling of manifest push Protocol should bring back a digest string, which can either be printed or stored in a file. We should not reimplement the manifest push setup code in the tunnel code but take advantage of the api path, to make sure remote and local work the same way. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
77 lines
2.3 KiB
Markdown
77 lines
2.3 KiB
Markdown
% podman-manifest-push(1)
|
|
|
|
## NAME
|
|
podman\-manifest\-push - Push a manifest list or image index to a registry
|
|
|
|
## SYNOPSIS
|
|
**podman manifest push** [*options*] *listnameorindexname* *transport:details*
|
|
|
|
## DESCRIPTION
|
|
Pushes a manifest list or image index to a registry.
|
|
|
|
## RETURN VALUE
|
|
The list image's ID and the digest of the image's manifest.
|
|
|
|
## OPTIONS
|
|
|
|
#### **--all**
|
|
|
|
Push the images mentioned in the manifest list or image index, in addition to
|
|
the list or index itself. (Default true)
|
|
|
|
#### **--authfile**=*path*
|
|
|
|
Path of the authentication file. Default is ${XDG\_RUNTIME\_DIR}/containers/auth.json, which is set using `podman login`.
|
|
If the authorization state is not found there, $HOME/.docker/config.json is checked, which is set using `docker login`.
|
|
|
|
Note: You can also override the default path of the authentication file by setting the REGISTRY\_AUTH\_FILE
|
|
environment variable. `export REGISTRY_AUTH_FILE=path`
|
|
|
|
#### **--cert-dir**=*path*
|
|
|
|
Use certificates at *path* (\*.crt, \*.cert, \*.key) to connect to the registry.
|
|
Default certificates directory is _/etc/containers/certs.d_. (Not available for remote commands)
|
|
|
|
#### **--creds**=*creds*
|
|
|
|
The [username[:password]] to use to authenticate with the registry if required.
|
|
If one or both values are not supplied, a command line prompt will appear and the
|
|
value can be entered. The password is entered without echo.
|
|
|
|
#### **--digestfile**=*Digestfile*
|
|
|
|
After copying the image, write the digest of the resulting image to the file.
|
|
|
|
#### **--format**, **-f**=*format*
|
|
|
|
Manifest list type (oci or v2s2) to use when pushing the list (default is oci).
|
|
|
|
#### **--quiet**, **-q**
|
|
|
|
When writing the manifest, suppress progress output
|
|
|
|
#### **--rm**
|
|
|
|
Delete the manifest list or image index from local storage if pushing succeeds.
|
|
|
|
#### **--remove-signatures**
|
|
|
|
Don't copy signatures when pushing images.
|
|
|
|
#### **--sign-by**=*fingerprint*
|
|
|
|
Sign the pushed images using the GPG key that matches the specified fingerprint.
|
|
|
|
#### **--tls-verify**
|
|
|
|
Require HTTPS and verify certificates when talking to container registries. (defaults to true)
|
|
|
|
## EXAMPLE
|
|
|
|
```
|
|
podman manifest push mylist:v1.11 docker://registry.example.org/mylist:v1.11
|
|
```
|
|
|
|
## SEE ALSO
|
|
podman(1), podman-manifest(1), podman-manifest-add(1), podman-manifest-create(1), podman-manifest-inspect(1), podman-manifest-remove(1), podman-rmi(1)
|