package distribution
import "github.com/docker/distribution"
Package distribution will define the interfaces for the components of docker distribution. The goal is to allow users to reliably package, ship and store content related to docker images.
This is currently a work in progress. More details are availalbe in the README.md.
Index ¶
- Variables
- type Descriptor
- type ErrLayerInvalidDigest
- type ErrManifestUnknown
- type ErrManifestUnverified
- type ErrManifestVerification
- type ErrRepositoryNameInvalid
- type ErrRepositoryUnknown
- type ErrUnknownLayer
- type ErrUnknownManifestRevision
- type Layer
- type LayerService
- type LayerUpload
- type ManifestService
- type Namespace
- type Repository
- type Scope
- type SignatureService
Variables ¶
var ( // ErrLayerExists returned when layer already exists ErrLayerExists = fmt.Errorf("layer exists") // ErrLayerTarSumVersionUnsupported when tarsum is unsupported version. ErrLayerTarSumVersionUnsupported = fmt.Errorf("unsupported tarsum version") // ErrLayerUploadUnknown returned when upload is not found. ErrLayerUploadUnknown = fmt.Errorf("layer upload unknown") // ErrLayerClosed returned when an operation is attempted on a closed // Layer or LayerUpload. ErrLayerClosed = fmt.Errorf("layer closed") )
var GlobalScope = Scope(fullScope{})
GlobalScope represents the full namespace scope which contains all other scopes.
Types ¶
type Descriptor ¶
type Descriptor struct { // MediaType describe the type of the content. All text based formats are // encoded as utf-8. MediaType string `json:"mediaType,omitempty"` // Length in bytes of content. Length int64 `json:"length,omitempty"` // Digest uniquely identifies the content. A byte stream can be verified // against against this digest. Digest digest.Digest `json:"digest,omitempty"` }
Descriptor describes targeted content. Used in conjunction with a blob store, a descriptor can be used to fetch, store and target any kind of blob. The struct also describes the wire protocol format. Fields should only be added but never changed.
type ErrLayerInvalidDigest ¶
ErrLayerInvalidDigest returned when tarsum check fails.
func (ErrLayerInvalidDigest) Error ¶
func (err ErrLayerInvalidDigest) Error() string
type ErrManifestUnknown ¶
ErrManifestUnknown is returned if the manifest is not known by the registry.
func (ErrManifestUnknown) Error ¶
func (err ErrManifestUnknown) Error() string
type ErrManifestUnverified ¶
type ErrManifestUnverified struct{}
ErrManifestUnverified is returned when the registry is unable to verify the manifest.
func (ErrManifestUnverified) Error ¶
func (ErrManifestUnverified) Error() string
type ErrManifestVerification ¶
type ErrManifestVerification []error
ErrManifestVerification provides a type to collect errors encountered during manifest verification. Currently, it accepts errors of all types, but it may be narrowed to those involving manifest verification.
func (ErrManifestVerification) Error ¶
func (errs ErrManifestVerification) Error() string
type ErrRepositoryNameInvalid ¶
ErrRepositoryNameInvalid should be used to denote an invalid repository name. Reason may set, indicating the cause of invalidity.
func (ErrRepositoryNameInvalid) Error ¶
func (err ErrRepositoryNameInvalid) Error() string
type ErrRepositoryUnknown ¶
type ErrRepositoryUnknown struct { Name string }
ErrRepositoryUnknown is returned if the named repository is not known by the registry.
func (ErrRepositoryUnknown) Error ¶
func (err ErrRepositoryUnknown) Error() string
type ErrUnknownLayer ¶
ErrUnknownLayer returned when layer cannot be found.
func (ErrUnknownLayer) Error ¶
func (err ErrUnknownLayer) Error() string
type ErrUnknownManifestRevision ¶
ErrUnknownManifestRevision is returned when a manifest cannot be found by revision within a repository.
func (ErrUnknownManifestRevision) Error ¶
func (err ErrUnknownManifestRevision) Error() string
type Layer ¶
type Layer interface { // http.ServeContent requires an efficient implementation of // ReadSeeker.Seek(0, os.SEEK_END). io.ReadSeeker io.Closer // Digest returns the unique digest of the blob. Digest() digest.Digest // Length returns the length in bytes of the blob. Length() int64 // CreatedAt returns the time this layer was created. CreatedAt() time.Time // Handler returns an HTTP handler which serves the layer content, whether // by providing a redirect directly to the content, or by serving the // content itself. Handler(r *http.Request) (http.Handler, error) }
Layer provides a readable and seekable layer object. Typically, implementations are *not* goroutine safe.
type LayerService ¶
type LayerService interface { // Exists returns true if the layer exists. Exists(digest digest.Digest) (bool, error) // Fetch the layer identifed by TarSum. Fetch(digest digest.Digest) (Layer, error) // Upload begins a layer upload to repository identified by name, // returning a handle. Upload() (LayerUpload, error) // Resume continues an in progress layer upload, returning a handle to the // upload. The caller should seek to the latest desired upload location // before proceeding. Resume(uuid string) (LayerUpload, error) }
LayerService provides operations on layer files in a backend storage.
type LayerUpload ¶
type LayerUpload interface { io.WriteSeeker io.ReaderFrom io.Closer // UUID returns the identifier for this upload. UUID() string // StartedAt returns the time this layer upload was started. StartedAt() time.Time // Finish marks the upload as completed, returning a valid handle to the // uploaded layer. The digest is validated against the contents of the // uploaded layer. Finish(digest digest.Digest) (Layer, error) // Cancel the layer upload process. Cancel() error }
LayerUpload provides a handle for working with in-progress uploads. Instances can be obtained from the LayerService.Upload and LayerService.Resume.
type ManifestService ¶
type ManifestService interface { // Exists returns true if the manifest exists. Exists(dgst digest.Digest) (bool, error) // Get retrieves the identified by the digest, if it exists. Get(dgst digest.Digest) (*manifest.SignedManifest, error) // Delete removes the manifest, if it exists. Delete(dgst digest.Digest) error // Put creates or updates the manifest. Put(manifest *manifest.SignedManifest) error // Tags lists the tags under the named repository. Tags() ([]string, error) // ExistsByTag returns true if the manifest exists. ExistsByTag(tag string) (bool, error) // GetByTag retrieves the named manifest, if it exists. GetByTag(tag string) (*manifest.SignedManifest, error) }
ManifestService provides operations on image manifests.
type Namespace ¶
type Namespace interface { // Scope describes the names that can be used with this Namespace. The // global namespace will have a scope that matches all names. The scope // effectively provides an identity for the namespace. Scope() Scope // Repository should return a reference to the named repository. The // registry may or may not have the repository but should always return a // reference. Repository(ctx context.Context, name string) (Repository, error) }
Namespace represents a collection of repositories, addressable by name. Generally, a namespace is backed by a set of one or more services, providing facilities such as registry access, trust, and indexing.
type Repository ¶
type Repository interface { // Name returns the name of the repository. Name() string // Manifests returns a reference to this repository's manifest service. Manifests() ManifestService // Layers returns a reference to this repository's layers service. Layers() LayerService // Signatures returns a reference to this repository's signatures service. Signatures() SignatureService }
Repository is a named collection of manifests and layers.
type Scope ¶
type Scope interface { // Contains returns true if the name belongs to the namespace. Contains(name string) bool }
Scope defines the set of items that match a namespace.
type SignatureService ¶
type SignatureService interface { // Get retrieves all of the signature blobs for the specified digest. Get(dgst digest.Digest) ([][]byte, error) // Put stores the signature for the provided digest. Put(dgst digest.Digest, signatures ...[]byte) error }
SignatureService provides operations on signatures.
Source Files ¶
Directories ¶
- Version
- v2.0.0+incompatible
- Published
- Apr 16, 2015
- Platform
- js/wasm
- Imports
- 8 packages
- Last checked
- 4 hours ago –
Tools for package owners.