To include Docker image in the Release Bundle, it is sufficient to specify query criteria that will match the manifest.json of the desired docker image. Distribution will include all the Docker layers of the Docker image associated with that manifest.json file.
For example, we have a Docker image of a PostgreSQL version 11.1 in a Docker repository called docker-local
.
The content of the repository has the following hierarchy:
The manifest.json
file includes the following property:
docker.manifest.digest =
sha256:acb7f2b2e9bd560a32c0ba01991870f56f89deeff5f3224bc50aac2a98b7f73e
All the other files under docker-local/postgres/11.1
are the layers composing this specific image.
Docker digest
The “digest” parameter is designed as an opaque parameter to support verification of a successful transfer. For example, an HTTP URI parameter might be as follows:
sha256:6c3c624b58dbbcd3c0dd82b4c53f04194d1247c6eebdaab7c610cf7d66709b3b
Given this parameter, the registry will verify that the provided content does match this digest.
To include all the artifacts in the image (manifest and layers) it is sufficient to specify a query criteria that will match the manifest.json
of the desired Docker image:
AQL example
items.find({ "$and": [ { "$or": [ { "repo": { "$eq": "docker-local" } } ] }, { "$or": [ { "@docker.manifest.digest": "sha256:acb7f2b2e9bd560a32c0ba01991870f56f89deeff5f3224bc50aac2a98b7f73e" } ] } ] })