You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Here are the following conditions for support, from #804.
For the initial version, the manifest id is controlled by the registry. The manifest id should be returned as part of the response to a manifest PUT, in addition to a Location header with the canonical URL for the manifest (ie /v2/<name>/manifests/<tag>/<digest>).
The "digest" of the manifest is the sha256 of the "unsigned" portion of manifest, with sorted object keys. The id is only calculated by the registry. This is dependent on Store manifest signatures separately from content #25, allowing us to merge signatures from separate pushes of identical content.
PUT operations on the manifest are no longer destructive. If the content is different, the "tag" is updated to point at the new content. All revisions remain addressable by digest. Conflicting signatures are stored separately.
The DELETE method on /v2/<name>/manifests/<tag> should be clarified to delete all revisions of a given tag, whereas DELETE on /v2/<name>/manifests/<tag>/<digest> should only delete the revision with the request digest.
The following are the tasks required to accomplish this:
API Specification must be updated with the following endpoints:
Method
Path
Entity
Description
GET
/v2/<name>/manifests/<tag>/<digest>
Manifest
Fetch the manifest identified by name, tag and digest.
DELETE
/v2/<name>/manifests/<tag>/<digest>
Manifest
Delete the manifest identified by name, tag and digest
Add a header to /v2/<name>/manifests/<tag> that includes the manifest id.
Registry implementation must support new API methods that qualify reference with id and backend must store revisions.
After discussion in moby/moby#9015 and docker-archive/docker-registry#804, its clear that we need support for immutable references to v2 image references.
Here are the following conditions for support, from #804.
PUT, in addition to aLocationheader with the canonical URL for the manifest (ie/v2/<name>/manifests/<tag>/<digest>).PUToperations on the manifest are no longer destructive. If the content is different, the "tag" is updated to point at the new content. All revisions remain addressable by digest. Conflicting signatures are stored separately.DELETEmethod on/v2/<name>/manifests/<tag>should be clarified to delete all revisions of a given tag, whereasDELETEon/v2/<name>/manifests/<tag>/<digest>should only delete the revision with the request digest.The following are the tasks required to accomplish this:
/v2/<name>/manifests/<tag>/<digest>name,taganddigest./v2/<name>/manifests/<tag>/<digest>name,taganddigest/v2/<name>/manifests/<tag>that includes the manifest id.