docker

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Jan 31, 2019 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TestPod       = "test_pod"
	TestContainer = "test_container"
)
View Source
const ExampleBuildOutput1 = `` /* 277-byte string literal not displayed */
View Source
const ExampleBuildOutputV1_23 = `` /* 187-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 func(string) string) ([]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 MustNormalizeRefName added in v0.6.0

func MustNormalizeRefName(ref string) string

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 NormalizeRefName added in v0.6.0

func NormalizeRefName(ref string) (string, 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 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, env k8s.Env) (*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 types.ImageBuildOptions) (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 types.ImageBuildOptions) (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 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 types.ImageBuildOptions
	BuildOutput  string

	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 types.ImageBuildOptions) (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