docker

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2019 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TestPod       = "test_pod"
	TestContainer = "test_container"
)
View Source
const ExampleBuildOutput1 = `` /* 276-byte string literal not displayed */
View Source
const ExampleBuildOutputV1_23 = `` /* 186-byte string literal not displayed */
View Source
const ExampleBuildSHA1 = "sha256:11cd0b38bc3ceb958ffb2f9bd70be3fb317ce7d255c8a4c3f4af30e298aa1aab"
View Source
const ExamplePushSHA1 = "sha256:cc5f4c463f81c55183d8d737ba2f0d30b3e6f3670dbe2da68f0aac168e93fbb1"
View Source
const TagLatest = "latest"

Variables

View Source
var DefaultContainerListOutput = map[string][]types.Container{
	TestPod: []types.Container{
		types.Container{ID: TestContainer, ImageID: ExampleBuildSHA1, Command: "./stuff"},
	},
	"two-containers": []types.Container{
		types.Container{ID: "not a match", ImageID: ExamplePushSHA1, Command: "/pause"},
		types.Container{ID: "the right container", ImageID: ExampleBuildSHA1, Command: "./stuff"},
	},
}
View Source
var ExamplePushOutput1 = `` /* 1660-byte string literal not displayed */

Functions

func CreateClientOpts

func CreateClientOpts(ctx context.Context, env Env) ([]func(client *client.Client) error, error)

Adapted from client.FromEnv

Supported environment variables: DOCKER_HOST to set the url to the docker server. DOCKER_API_VERSION to set the version of the API to reach, leave empty for latest. DOCKER_CERT_PATH to load the TLS certificates from. DOCKER_TLS_VERIFY to enable or disable TLS verification, off by default.

func IsExitError

func IsExitError(err error) bool

func NegotiateAPIVersion added in v0.4.1

func NegotiateAPIVersion(ctx context.Context) func(client *client.Client) error

func NewFakeDockerResponse

func NewFakeDockerResponse(contents string) fakeDockerResponse

func ProvideDockerClient added in v0.7.11

func ProvideDockerClient(ctx context.Context, env Env) (*client.Client, error)

func ProvideDockerVersion added in v0.7.11

func ProvideDockerVersion(ctx context.Context, client *client.Client) (types.Version, error)

func SupportedVersion added in v0.4.1

func SupportedVersion(v types.Version) bool

func SupportsBuildkit added in v0.4.1

func SupportsBuildkit(v types.Version) bool

Sadly, certain versions of docker return an error if the client requests buildkit. We have to infer whether it supports buildkit from version numbers.

Inferred from release notes https://docs.docker.com/engine/release-notes/

Types

type BuildOptions added in v0.7.1

type BuildOptions struct {
	Context    io.Reader
	Dockerfile string
	Remove     bool
	BuildArgs  map[string]*string
	Tags       []string
}

type Cli added in v0.5.0

type Cli struct {
	*client.Client
	// contains filtered or unexported fields
}

func DefaultClient added in v0.5.0

func DefaultClient(ctx context.Context, d *client.Client, serverVersion types.Version) (*Cli, error)

func (*Cli) ContainerRestartNoWait added in v0.5.0

func (c *Cli) ContainerRestartNoWait(ctx context.Context, containerID string) error

func (*Cli) CopyToContainerRoot added in v0.5.0

func (c *Cli) CopyToContainerRoot(ctx context.Context, container string, content io.Reader) error

func (*Cli) ExecInContainer added in v0.5.0

func (c *Cli) ExecInContainer(ctx context.Context, cID container.ID, cmd model.Cmd, out io.Writer) error

func (*Cli) ImageBuild added in v0.5.0

func (c *Cli) ImageBuild(ctx context.Context, buildContext io.Reader, options BuildOptions) (types.ImageBuildResponse, error)

type Client added in v0.5.0

type Client interface {
	ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error)
	ContainerRestartNoWait(ctx context.Context, containerID string) error
	CopyToContainerRoot(ctx context.Context, container string, content io.Reader) error

	// Execute a command in a container, streaming the command output to `out`.
	// Returns an ExitError if the command exits with a non-zero exit code.
	ExecInContainer(ctx context.Context, cID container.ID, cmd model.Cmd, out io.Writer) error

	ImagePush(ctx context.Context, image string, options types.ImagePushOptions) (io.ReadCloser, error)
	ImageBuild(ctx context.Context, buildContext io.Reader, options BuildOptions) (types.ImageBuildResponse, error)
	ImageTag(ctx context.Context, source, target string) error
	ImageInspectWithRaw(ctx context.Context, imageID string) (types.ImageInspect, []byte, error)
	ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error)
	ImageRemove(ctx context.Context, imageID string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error)
}

Create an interface so this can be mocked out.

type Env added in v0.7.11

type Env struct {
	Host       string
	APIVersion string
	TLSVerify  string
	CertPath   string
}

See notes on CreateClientOpts. These environment variables are standard docker env configs.

func ProvideEnv added in v0.7.11

func ProvideEnv(ctx context.Context, env k8s.Env, runtime container.Runtime, minikubeClient minikube.Client) (Env, error)

func (Env) AsEnviron added in v0.7.11

func (e Env) AsEnviron() []string

Serializes this back to environment variables for os.Environ

type ExecCall

type ExecCall struct {
	Container string
	Cmd       model.Cmd
}

type ExitError

type ExitError struct {
	ExitCode int
}

func (ExitError) Error

func (e ExitError) Error() string

type FakeClient added in v0.5.0

type FakeClient struct {
	PushCount   int
	PushImage   string
	PushOptions types.ImagePushOptions
	PushOutput  string

	BuildCount        int
	BuildOptions      BuildOptions
	BuildOutput       string
	BuildErrorToThrow error // next call to Build will throw this err (after which we clear the error)

	TagCount  int
	TagSource string
	TagTarget string

	ContainerListOutput map[string][]types.Container

	CopyCount     int
	CopyContainer string
	CopyContent   io.Reader

	ExecCalls        []ExecCall
	ExecErrorToThrow error // next call to Exec will throw this err (after which we clear the error)

	RestartsByContainer map[string]int
	RemovedImageIDs     []string

	Images map[string]types.ImageInspect
}

func NewFakeClient added in v0.5.0

func NewFakeClient() *FakeClient

func (*FakeClient) ContainerList added in v0.5.0

func (c *FakeClient) ContainerList(ctx context.Context, options types.ContainerListOptions) ([]types.Container, error)

func (*FakeClient) ContainerRestartNoWait added in v0.5.0

func (c *FakeClient) ContainerRestartNoWait(ctx context.Context, containerID string) error

func (*FakeClient) CopyToContainerRoot added in v0.5.0

func (c *FakeClient) CopyToContainerRoot(ctx context.Context, container string, content io.Reader) error

func (*FakeClient) ExecInContainer added in v0.5.0

func (c *FakeClient) ExecInContainer(ctx context.Context, cID container.ID, cmd model.Cmd, out io.Writer) error

func (*FakeClient) ImageBuild added in v0.5.0

func (c *FakeClient) ImageBuild(ctx context.Context, buildContext io.Reader, options BuildOptions) (types.ImageBuildResponse, error)

func (*FakeClient) ImageInspectWithRaw added in v0.5.0

func (c *FakeClient) ImageInspectWithRaw(ctx context.Context, imageID string) (types.ImageInspect, []byte, error)

func (*FakeClient) ImageList added in v0.5.0

func (c *FakeClient) ImageList(ctx context.Context, options types.ImageListOptions) ([]types.ImageSummary, error)

func (*FakeClient) ImagePush added in v0.5.0

func (c *FakeClient) ImagePush(ctx context.Context, image string, options types.ImagePushOptions) (io.ReadCloser, error)

func (*FakeClient) ImageRemove added in v0.5.0

func (c *FakeClient) ImageRemove(ctx context.Context, imageID string, options types.ImageRemoveOptions) ([]types.ImageDeleteResponseItem, error)

func (*FakeClient) ImageTag added in v0.5.0

func (c *FakeClient) ImageTag(ctx context.Context, source, target string) error

func (*FakeClient) SetContainerListOutput added in v0.5.0

func (c *FakeClient) SetContainerListOutput(output map[string][]types.Container)

func (*FakeClient) SetDefaultContainerListOutput added in v0.5.0

func (c *FakeClient) SetDefaultContainerListOutput()

type ImgNameAndTag

type ImgNameAndTag struct {
	Name string
	Tag  string
}

For use storing reference.NamedTagged as a map key, since we can't rely on the two different underlying representations the same name+tag combo being equivalent.

func ToImgNameAndTag

func ToImgNameAndTag(nt reference.NamedTagged) ImgNameAndTag

Jump to

Keyboard shortcuts

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