Documentation ¶
Overview ¶
Package v1 defines structured types for OCI v1 images
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct { AttachStderr bool `json:"AttachStderr,omitempty"` AttachStdin bool `json:"AttachStdin,omitempty"` AttachStdout bool `json:"AttachStdout,omitempty"` Cmd []string `json:"Cmd,omitempty"` Healthcheck *HealthConfig `json:"Healthcheck,omitempty"` Domainname string `json:"Domainname,omitempty"` Entrypoint []string `json:"Entrypoint,omitempty"` Env []string `json:"Env,omitempty"` Hostname string `json:"Hostname,omitempty"` Image string `json:"Image,omitempty"` Labels map[string]string `json:"Labels,omitempty"` OnBuild []string `json:"OnBuild,omitempty"` OpenStdin bool `json:"OpenStdin,omitempty"` StdinOnce bool `json:"StdinOnce,omitempty"` Tty bool `json:"Tty,omitempty"` User string `json:"User,omitempty"` Volumes map[string]struct{} `json:"Volumes,omitempty"` WorkingDir string `json:"WorkingDir,omitempty"` ExposedPorts map[string]struct{} `json:"ExposedPorts,omitempty"` ArgsEscaped bool `json:"ArgsEscaped,omitempty"` NetworkDisabled bool `json:"NetworkDisabled,omitempty"` MacAddress string `json:"MacAddress,omitempty"` StopSignal string `json:"StopSignal,omitempty"` Shell []string `json:"Shell,omitempty"` }
Config is a submessage of the config file described as:
The execution parameters which SHOULD be used as a base when running a container using the image.
The names of the fields in this message are chosen to reflect the JSON payload of the Config as defined here: https://git.io/vrAET and https://github.com/opencontainers/image-spec/blob/master/config.md
func (*Config) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Config.
func (*Config) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ConfigFile ¶
type ConfigFile struct { Architecture string `json:"architecture"` Author string `json:"author,omitempty"` Container string `json:"container,omitempty"` Created Time `json:"created,omitempty"` DockerVersion string `json:"docker_version,omitempty"` History []History `json:"history,omitempty"` OS string `json:"os"` RootFS RootFS `json:"rootfs"` Config Config `json:"config"` OSVersion string `json:"os.version,omitempty"` Variant string `json:"variant,omitempty"` OSFeatures []string `json:"os.features,omitempty"` }
ConfigFile is the configuration file that holds the metadata describing how to launch a container. See: https://github.com/opencontainers/image-spec/blob/master/config.md
docker_version and os.version are not part of the spec but included for backwards compatibility.
func ParseConfigFile ¶
func ParseConfigFile(r io.Reader) (*ConfigFile, error)
ParseConfigFile parses the io.Reader's contents into a ConfigFile.
func (*ConfigFile) DeepCopy ¶
func (in *ConfigFile) DeepCopy() *ConfigFile
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigFile.
func (*ConfigFile) DeepCopyInto ¶
func (in *ConfigFile) DeepCopyInto(out *ConfigFile)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ConfigFile) Platform ¶
func (cf *ConfigFile) Platform() *Platform
Platform attempts to generates a Platform from the ConfigFile fields.
type Descriptor ¶
type Descriptor struct { MediaType types.MediaType `json:"mediaType"` Size int64 `json:"size"` Digest Hash `json:"digest"` Data []byte `json:"data,omitempty"` URLs []string `json:"urls,omitempty"` Annotations map[string]string `json:"annotations,omitempty"` Platform *Platform `json:"platform,omitempty"` ArtifactType string `json:"artifactType,omitempty"` }
Descriptor holds a reference from the manifest to one of its constituent elements.
func (*Descriptor) DeepCopy ¶
func (in *Descriptor) DeepCopy() *Descriptor
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Descriptor.
func (*Descriptor) DeepCopyInto ¶
func (in *Descriptor) DeepCopyInto(out *Descriptor)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Hash ¶
type Hash struct { // Algorithm holds the algorithm used to compute the hash. Algorithm string // Hex holds the hex portion of the content hash. Hex string }
Hash is an unqualified digest of some content, e.g. sha256:deadbeef
func NewHash ¶
NewHash validates the input string is a hash and returns a strongly type Hash object.
func (*Hash) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Hash.
func (*Hash) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Hash) MarshalJSON ¶
MarshalJSON implements json.Marshaler
func (Hash) MarshalText ¶
MarshalText implements encoding.TextMarshaler. This is required to use v1.Hash as a key in a map when marshalling JSON.
func (*Hash) UnmarshalJSON ¶
UnmarshalJSON implements json.Unmarshaler
func (*Hash) UnmarshalText ¶
UnmarshalText implements encoding.TextUnmarshaler. This is required to use v1.Hash as a key in a map when unmarshalling JSON.
type HealthConfig ¶
type HealthConfig struct { // Test is the test to perform to check that the container is healthy. // An empty slice means to inherit the default. // The options are: // {} : inherit healthcheck // {"NONE"} : disable healthcheck // {"CMD", args...} : exec arguments directly // {"CMD-SHELL", command} : run command with system's default shell Test []string `json:",omitempty"` // Zero means to inherit. Durations are expressed as integer nanoseconds. Interval time.Duration `json:",omitempty"` // Interval is the time to wait between checks. Timeout time.Duration `json:",omitempty"` // Timeout is the time to wait before considering the check to have hung. StartPeriod time.Duration `json:",omitempty"` // The start period for the container to initialize before the retries starts to count down. // Retries is the number of consecutive failures needed to consider a container as unhealthy. // Zero means inherit. Retries int `json:",omitempty"` }
HealthConfig holds configuration settings for the HEALTHCHECK feature.
func (*HealthConfig) DeepCopy ¶
func (in *HealthConfig) DeepCopy() *HealthConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthConfig.
func (*HealthConfig) DeepCopyInto ¶
func (in *HealthConfig) DeepCopyInto(out *HealthConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type History ¶
type History struct { Author string `json:"author,omitempty"` Created Time `json:"created,omitempty"` CreatedBy string `json:"created_by,omitempty"` Comment string `json:"comment,omitempty"` EmptyLayer bool `json:"empty_layer,omitempty"` }
History is one entry of a list recording how this container image was built.
func (*History) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new History.
func (*History) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Image ¶
type Image interface { // Layers returns the ordered collection of filesystem layers that comprise this image. // The order of the list is oldest/base layer first, and most-recent/top layer last. Layers() ([]Layer, error) // MediaType of this image's manifest. MediaType() (types.MediaType, error) // Size returns the size of the manifest. Size() (int64, error) // ConfigName returns the hash of the image's config file, also known as // the Image ID. ConfigName() (Hash, error) // ConfigFile returns this image's config file. ConfigFile() (*ConfigFile, error) // RawConfigFile returns the serialized bytes of ConfigFile(). RawConfigFile() ([]byte, error) // Digest returns the sha256 of this image's manifest. Digest() (Hash, error) // Manifest returns this image's Manifest object. Manifest() (*Manifest, error) // RawManifest returns the serialized bytes of Manifest() RawManifest() ([]byte, error) // LayerByDigest returns a Layer for interacting with a particular layer of // the image, looking it up by "digest" (the compressed hash). LayerByDigest(Hash) (Layer, error) // LayerByDiffID is an analog to LayerByDigest, looking up by "diff id" // (the uncompressed hash). LayerByDiffID(Hash) (Layer, error) }
Image defines the interface for interacting with an OCI v1 image.
type ImageIndex ¶
type ImageIndex interface { // MediaType of this image's manifest. MediaType() (types.MediaType, error) // Digest returns the sha256 of this index's manifest. Digest() (Hash, error) // Size returns the size of the manifest. Size() (int64, error) // IndexManifest returns this image index's manifest object. IndexManifest() (*IndexManifest, error) // RawManifest returns the serialized bytes of IndexManifest(). RawManifest() ([]byte, error) // Image returns a v1.Image that this ImageIndex references. Image(Hash) (Image, error) // ImageIndex returns a v1.ImageIndex that this ImageIndex references. ImageIndex(Hash) (ImageIndex, error) }
ImageIndex defines the interface for interacting with an OCI image index.
type IndexManifest ¶
type IndexManifest struct { SchemaVersion int64 `json:"schemaVersion"` MediaType types.MediaType `json:"mediaType,omitempty"` Manifests []Descriptor `json:"manifests"` Annotations map[string]string `json:"annotations,omitempty"` Subject *Descriptor `json:"subject,omitempty"` }
IndexManifest represents an OCI image index in a structured way.
func ParseIndexManifest ¶
func ParseIndexManifest(r io.Reader) (*IndexManifest, error)
ParseIndexManifest parses the io.Reader's contents into an IndexManifest.
func (*IndexManifest) DeepCopy ¶
func (in *IndexManifest) DeepCopy() *IndexManifest
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IndexManifest.
func (*IndexManifest) DeepCopyInto ¶
func (in *IndexManifest) DeepCopyInto(out *IndexManifest)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Layer ¶
type Layer interface { // Digest returns the Hash of the compressed layer. Digest() (Hash, error) // DiffID returns the Hash of the uncompressed layer. DiffID() (Hash, error) // Compressed returns an io.ReadCloser for the compressed layer contents. Compressed() (io.ReadCloser, error) // Uncompressed returns an io.ReadCloser for the uncompressed layer contents. Uncompressed() (io.ReadCloser, error) // Size returns the compressed size of the Layer. Size() (int64, error) // MediaType returns the media type of the Layer. MediaType() (types.MediaType, error) }
Layer is an interface for accessing the properties of a particular layer of a v1.Image
type Manifest ¶
type Manifest struct { SchemaVersion int64 `json:"schemaVersion"` MediaType types.MediaType `json:"mediaType,omitempty"` Config Descriptor `json:"config"` Layers []Descriptor `json:"layers"` Annotations map[string]string `json:"annotations,omitempty"` Subject *Descriptor `json:"subject,omitempty"` }
Manifest represents the OCI image manifest in a structured way.
func ParseManifest ¶
ParseManifest parses the io.Reader's contents into a Manifest.
func (*Manifest) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Manifest.
func (*Manifest) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Platform ¶
type Platform struct { Architecture string `json:"architecture"` OS string `json:"os"` OSVersion string `json:"os.version,omitempty"` OSFeatures []string `json:"os.features,omitempty"` Variant string `json:"variant,omitempty"` Features []string `json:"features,omitempty"` }
Platform represents the target os/arch for an image.
func ParsePlatform ¶
ParsePlatform parses a string representing a Platform, if possible.
func (*Platform) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Platform.
func (*Platform) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (Platform) Equals ¶
Equals returns true if the given platform is semantically equivalent to this one. The order of Features and OSFeatures is not important.
func (Platform) Satisfies ¶
Satisfies returns true if this Platform "satisfies" the given spec Platform.
Note that this is different from Equals and that Satisfies is not reflexive.
The given spec represents "requirements" such that any missing values in the spec are not compared.
For OSFeatures and Features, Satisfies will return true if this Platform's fields contain a superset of the values in the spec's fields (order ignored).
type RootFS ¶
RootFS holds the ordered list of file system deltas that comprise the container image's root filesystem.
func (*RootFS) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RootFS.
func (*RootFS) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Time ¶
Time is a wrapper around time.Time to help with deep copying
func (*Time) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Time.
func (*Time) DeepCopyInto ¶
DeepCopyInto creates a deep-copy of the Time value. The underlying time.Time type is effectively immutable in the time API, so it is safe to copy-by-assign, despite the presence of (unexported) Pointer fields.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package cache provides methods to cache layers.
|
Package cache provides methods to cache layers. |
Package daemon provides facilities for reading/writing v1.Image from/to a running daemon.
|
Package daemon provides facilities for reading/writing v1.Image from/to a running daemon. |
Package empty provides an implementation of v1.Image equivalent to "FROM scratch".
|
Package empty provides an implementation of v1.Image equivalent to "FROM scratch". |
Code generated by counterfeiter.
|
Code generated by counterfeiter. |
Package google provides facilities for listing images in gcr.io.
|
Package google provides facilities for listing images in gcr.io. |
Package layout provides facilities for reading/writing artifacts from/to an OCI image layout on disk, see:
|
Package layout provides facilities for reading/writing artifacts from/to an OCI image layout on disk, see: |
Package match provides functionality for conveniently matching a v1.Descriptor.
|
Package match provides functionality for conveniently matching a v1.Descriptor. |
Package mutate provides facilities for mutating v1.Images of any kind.
|
Package mutate provides facilities for mutating v1.Images of any kind. |
Package partial defines methods for building up a v1.Image from minimal subsets that are sufficient for defining a v1.Image.
|
Package partial defines methods for building up a v1.Image from minimal subsets that are sufficient for defining a v1.Image. |
Package random provides a facility for synthesizing pseudo-random images.
|
Package random provides a facility for synthesizing pseudo-random images. |
Package remote provides facilities for reading/writing v1.Images from/to a remote image registry.
|
Package remote provides facilities for reading/writing v1.Images from/to a remote image registry. |
transport
Package transport provides facilities for setting up an authenticated http.RoundTripper given an Authenticator and base RoundTripper.
|
Package transport provides facilities for setting up an authenticated http.RoundTripper given an Authenticator and base RoundTripper. |
Package stream implements a single-pass streaming v1.Layer.
|
Package stream implements a single-pass streaming v1.Layer. |
Package tarball provides facilities for reading/writing v1.Images from/to a tarball on-disk.
|
Package tarball provides facilities for reading/writing v1.Images from/to a tarball on-disk. |
Package types holds common OCI media types.
|
Package types holds common OCI media types. |
Package validate provides methods for validating image correctness.
|
Package validate provides methods for validating image correctness. |