manifest - A tool to query/create manifest list objects in the Docker Registry v2.3 and above
manifest is a command line utility to create manifests list objects in the Docker registry.
Manifest lists are defined in the v2.2 image specification and allow for multi-architecture and/or
multi-OS images to be stored in the Docker registry.
Note: For pushing to an authenticated registry like DockerHub, you will need a config generated via
docker login <enter your credentials>
The Docker config file generated from the login is required for authentication with the repository from the manifest tool:
./manifest --docker-cfg '/home/myuser/.docker/' /home/myuser/sample.yml
In the current version, a YAML file defines the images which will be combined into a manifest list
object. A sample YAML file is shown below. Cross-repository push is implemented in
so the image names can differ as long as they are in the same registry. For example, a source
image can be
myprivreg:5000/someimage_ppc64le:latest to create a manifest list with image name
Using a private registry running on port 5000, a sample YAML might look like:
image: myprivreg:5000/someimage:latest manifests: - image: myprivreg:5000/someimage:ppc64le platform: architecture: ppc64le os: linux - image: myprivreg:5000/someimage:amd64 platform: architecture: amd64 features: - sse os: linux
If your cli config is found but it doesn't contain the necessary credentials for the queried registry
you'll receive an error. You can fix this by either logging in (via
docker login) or providing
manifest you need either Go 1.6, or Go 1.5 with the variable
Either set up your
$GOPATH properly, or clone this repository into your
$GOPATH to allow compilation to
successfully build the tool.
$ cd $GOPATH/src $ mkdir -p github.com/estesp $ cd github.com/estesp $ git clone https://github.com/estesp/manifest-tool $ cd manifest-tool && make binary
If you built from source:
$ sudo make install
You need Docker installed on your system in order to run the test suite.
$ make test-integration
- Automatically populate OS and architecture from source manifests?
Apache License 2.0