Story #3401
Updated by bizhang over 6 years ago
Manifest should contain the following fields: * digest: CharField(255) * schema_version: IntegerField() * config_blob: config_layer: ForeignKey to Blob Layer * blobs: ManyToManyField('Blob', through='ManifestBlob') layers: ManyToManyField('Layer', through='ManifestLayer') * mediaType: ChoiceField() (application/vnd.docker.distribution.manifest.v1+json, application/vnd.docker.distribution.manifest.v2+json) ManifestBlob ManifestLayer is used to model the relationship between Manifests and Blobs Layer * blob: layer: ForeignKey to Blob Layer * manifest: ForeignKey to Manifest * mediaType: ChoiceField() * size: IntegerField() MediaType Choice for the ManifestBlob: ManifestLayer: * application/vnd.docker.container.image.v1+json Container config json represented as a blob layer * application/vnd.docker.image.rootfs.diff.tar.gzip Regular blob layer * application/vnd.docker.image.rootfs.foreign.diff.tar.gzip Foreign blob layer ( we do not intend to store foreign blobs. layers. Docker client during pull will fetch it from the remote location)