docker

package
v0.0.0-...-ea77a8b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 6, 2016 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Deprecated environment variable name, specifying where to look for the S2I scripts.
	// It is now being replaced with ScriptsURLLabel.
	ScriptsURLEnvironment = "STI_SCRIPTS_URL"
	// Deprecated environment variable name, specifying where to place artifacts in
	// builder image. It is now being replaced with DestinationLabel.
	LocationEnvironment = "STI_LOCATION"

	// ScriptsURLLabel is the name of the Docker image LABEL that tells S2I where
	// to look for the S2I scripts. This label is also copied into the ouput
	// image.
	// The previous name of this label was 'io.s2i.scripts-url'. This is now
	// deprecated.
	ScriptsURLLabel = api.DefaultNamespace + "scripts-url"
	// DestinationLabel is the name of the Docker image LABEL that tells S2I where
	// to place the artifacts (scripts, sources) in the builder image.
	// The previous name of this label was 'io.s2i.destination'. This is now
	// deprecated
	DestinationLabel = api.DefaultNamespace + "destination"

	// DefaultDestination is the destination where the artifacts will be placed
	// if DestinationLabel was not specified.
	DefaultDestination = "/tmp"
	// DefaultTag is the image tag, being applied if none is specified.
	DefaultTag = "latest"
)

Variables

This section is empty.

Functions

func CheckAllowedUser

func CheckAllowedUser(d Docker, imageName string, uids user.RangeList, isOnbuild bool) error

CheckAllowedUser checks if the Docker image contains allowed users FIXME: @cswong this need better godoc

func GetDefaultDockerConfig

func GetDefaultDockerConfig() *api.DockerConfig

func GetImageRegistryAuth

func GetImageRegistryAuth(auths *client.AuthConfigurations, imageName string) client.AuthConfiguration

GetImageRegistryAuth retrieves the appropriate docker client authentication object for a given image name and a given set of client authentication objects.

func IsReachable

func IsReachable(config *api.Config) bool

IsReachable returns true if the Docker daemon is reachable from s2i

func LoadAndGetImageRegistryAuth

func LoadAndGetImageRegistryAuth(dockerCfg io.Reader, imageName string) client.AuthConfiguration

LoadAndGetImageRegistryAuth loads the set of client auth objects from a docker config file and returns the appropriate client auth object for a given image name.

func LoadImageRegistryAuth

func LoadImageRegistryAuth(dockerCfg io.Reader) *client.AuthConfigurations

LoadImageRegistryAuth loads and returns the set of client auth objects from a docker config json file.

func StreamContainerIO

func StreamContainerIO(errStream io.Reader, errOutput *string, log func(...interface{}))

StreamContainerIO takes data from the Reader and redirects to the log functin (typically we pass in glog.Error for stderr and glog.Info for stdout

Types

type BuildImageOptions

type BuildImageOptions struct {
	Name   string
	Stdin  io.Reader
	Stdout io.Writer
}

BuildImageOptions are options passed in to the BuildImage method

type Client

type Client interface {
	RemoveImage(name string) error
	InspectImage(name string) (*docker.Image, error)
	PullImage(opts docker.PullImageOptions, auth docker.AuthConfiguration) error
	CreateContainer(opts docker.CreateContainerOptions) (*docker.Container, error)
	AttachToContainer(opts docker.AttachToContainerOptions) error
	StartContainer(id string, hostConfig *docker.HostConfig) error
	WaitContainer(id string) (int, error)
	RemoveContainer(opts docker.RemoveContainerOptions) error
	CommitContainer(opts docker.CommitContainerOptions) (*docker.Image, error)
	CopyFromContainer(opts docker.CopyFromContainerOptions) error
	BuildImage(opts docker.BuildImageOptions) error
	InspectContainer(id string) (*docker.Container, error)
	Ping() error
}

Client contains all methods called on the go Docker client.

type CommitContainerOptions

type CommitContainerOptions struct {
	ContainerID string
	Repository  string
	User        string
	Command     []string
	Env         []string
	Labels      map[string]string
}

CommitContainerOptions are options passed in to the CommitContainer method

type Docker

type Docker interface {
	IsImageInLocalRegistry(name string) (bool, error)
	IsImageOnBuild(string) bool
	GetOnBuild(string) ([]string, error)
	RemoveContainer(id string) error
	GetScriptsURL(name string) (string, error)
	RunContainer(opts RunContainerOptions) error
	GetImageID(name string) (string, error)
	CommitContainer(opts CommitContainerOptions) (string, error)
	RemoveImage(name string) error
	CheckImage(name string) (*docker.Image, error)
	PullImage(name string) (*docker.Image, error)
	CheckAndPullImage(name string) (*docker.Image, error)
	BuildImage(opts BuildImageOptions) error
	GetImageUser(name string) (string, error)
	GetLabels(name string) (map[string]string, error)
	Ping() error
}

Docker is the interface between STI and the Docker client It contains higher level operations called from the STI build or usage commands

func New

func New(config *api.DockerConfig, auth docker.AuthConfiguration) (Docker, error)

New creates a new implementation of the STI Docker interface

type DockerImageReference

type DockerImageReference struct {
	Registry  string
	Namespace string
	Name      string
	Tag       string
	ID        string
}

DockerImageReference points to a Docker image.

func ParseDockerImageReference

func ParseDockerImageReference(spec string) (DockerImageReference, error)

ParseDockerImageReference parses a Docker pull spec string into a DockerImageReference. FIXME: This code was copied from OpenShift repository

type FakeDocker

type FakeDocker struct {
	LocalRegistryImage           string
	LocalRegistryResult          bool
	LocalRegistryError           error
	RemoveContainerID            string
	RemoveContainerError         error
	DefaultURLImage              string
	DefaultURLResult             string
	DefaultURLError              error
	RunContainerOpts             RunContainerOptions
	RunContainerError            error
	RunContainerErrorBeforeStart bool
	RunContainerContainerID      string
	RunContainerCmd              []string
	GetImageIDImage              string
	GetImageIDResult             string
	GetImageIDError              error
	GetImageUserImage            string
	GetImageUserResult           string
	GetImageUserError            error
	CommitContainerOpts          CommitContainerOptions
	CommitContainerResult        string
	CommitContainerError         error
	RemoveImageName              string
	RemoveImageError             error
	BuildImageOpts               BuildImageOptions
	BuildImageError              error
	PullResult                   bool
	PullError                    error
	OnBuildImage                 string
	OnBuildResult                []string
	OnBuildError                 error
	IsOnBuildResult              bool
	IsOnBuildImage               string
	Labels                       map[string]string
	LabelsError                  error
	// contains filtered or unexported fields
}

FakeDocker provides a fake docker interface

func (*FakeDocker) BuildImage

func (f *FakeDocker) BuildImage(opts BuildImageOptions) error

BuildImage builds image

func (*FakeDocker) CheckAndPullImage

func (f *FakeDocker) CheckAndPullImage(name string) (*dockerclient.Image, error)

CheckAndPullImage pulls a fake docker image

func (*FakeDocker) CheckImage

func (f *FakeDocker) CheckImage(name string) (*dockerclient.Image, error)

CheckImage checks image in local registry

func (*FakeDocker) CommitContainer

func (f *FakeDocker) CommitContainer(opts CommitContainerOptions) (string, error)

CommitContainer commits a fake Docker container

func (*FakeDocker) GetImageID

func (f *FakeDocker) GetImageID(image string) (string, error)

GetImageID returns a fake Docker image ID

func (*FakeDocker) GetImageUser

func (f *FakeDocker) GetImageUser(image string) (string, error)

GetImageUser returns a fake user

func (*FakeDocker) GetLabels

func (f *FakeDocker) GetLabels(name string) (map[string]string, error)

func (*FakeDocker) GetOnBuild

func (f *FakeDocker) GetOnBuild(imageName string) ([]string, error)

GetOnBuild returns the list of onbuild instructions for the given image

func (*FakeDocker) GetScriptsURL

func (f *FakeDocker) GetScriptsURL(image string) (string, error)

GetScriptsURL returns a default STI scripts URL

func (*FakeDocker) IsImageInLocalRegistry

func (f *FakeDocker) IsImageInLocalRegistry(imageName string) (bool, error)

IsImageInLocalRegistry checks if the image exists in the fake local registry

func (*FakeDocker) IsImageOnBuild

func (f *FakeDocker) IsImageOnBuild(imageName string) bool

IsImageOnBuild returns true if the builder has onbuild instructions

func (*FakeDocker) Ping

func (f *FakeDocker) Ping() error

Ping tells id the Docker deamon is reachable

func (*FakeDocker) PullImage

func (f *FakeDocker) PullImage(imageName string) (*dockerclient.Image, error)

PullImage pulls a fake docker image

func (*FakeDocker) RemoveContainer

func (f *FakeDocker) RemoveContainer(id string) error

RemoveContainer removes a fake Docker container

func (*FakeDocker) RemoveImage

func (f *FakeDocker) RemoveImage(name string) error

RemoveImage removes a fake Docker image

func (*FakeDocker) RunContainer

func (f *FakeDocker) RunContainer(opts RunContainerOptions) error

RunContainer runs a fake Docker container

type PostExecutor

type PostExecutor interface {
	PostExecute(containerID, destination string) error
}

type PullResult

type PullResult struct {
	OnBuild bool
	Image   *docker.Image
}

func GetBuilderImage

func GetBuilderImage(config *api.Config) (*PullResult, error)

GetBuilderImage processes the config and performs operations necessary to make the Docker image specified as BuilderImage available locally. It returns information about the base image, containing metadata necessary for choosing the right STI build strategy.

func PullImage

func PullImage(name string, d Docker, policy api.PullPolicy, force bool) (*PullResult, error)

PullImage pulls the Docker image specifies by name taking the pull policy into the account. TODO: The 'force' option will be removed

type RunContainerOptions

type RunContainerOptions struct {
	Image           string
	PullImage       bool
	PullAuth        docker.AuthConfiguration
	ExternalScripts bool
	ScriptsURL      string
	Destination     string
	Command         string
	Env             []string
	Stdin           io.Reader
	Stdout          io.Writer
	Stderr          io.Writer
	OnStart         func() error
	PostExec        PostExecutor
	TargetImage     bool
	NetworkMode     string
	User            string
}

RunContainerOptions are options passed in to the RunContainer method

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL