docker

package
v0.0.0-...-5953fd8 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2021 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package docker allows to interact with Docker and docker-compose resources.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Build

func Build(t testing.TestingT, path string, options *BuildOptions)

Build runs the 'docker build' command at the given path with the given options and fails the test if there are any errors.

func BuildE

func BuildE(t testing.TestingT, path string, options *BuildOptions) error

BuildE runs the 'docker build' command at the given path with the given options and returns any errors.

func GetDockerHost

func GetDockerHost() string

GetDockerHost returns the name or address of the host on which the Docker engine is running.

func Run

func Run(t testing.TestingT, image string, options *RunOptions) string

Run runs the 'docker run' command on the given image with the given options and return stdout/stderr. This method fails the test if there are any errors.

func RunAndGetID

func RunAndGetID(t testing.TestingT, image string, options *RunOptions) string

RunAndGetID runs the 'docker run' command on the given image with the given options and returns the container ID that is returned in stdout. This method fails the test if there are any errors.

func RunAndGetIDE

func RunAndGetIDE(t testing.TestingT, image string, options *RunOptions) (string, error)

RunAndGetIDE runs the 'docker run' command on the given image with the given options and returns the container ID that is returned in stdout, or any error.

func RunDockerCompose

func RunDockerCompose(t testing.TestingT, options *Options, args ...string) string

RunDockerCompose runs docker-compose with the given arguments and options and return stdout/stderr.

func RunDockerComposeAndGetStdOut

func RunDockerComposeAndGetStdOut(t testing.TestingT, options *Options, args ...string) string

RunDockerComposeAndGetStdout runs docker-compose with the given arguments and options and returns only stdout.

func RunDockerComposeE

func RunDockerComposeE(t testing.TestingT, options *Options, args ...string) (string, error)

RunDockerComposeE runs docker-compose with the given arguments and options and return stdout/stderr.

func RunE

func RunE(t testing.TestingT, image string, options *RunOptions) (string, error)

RunE runs the 'docker run' command on the given image with the given options and return stdout/stderr, or any error.

func Stop

func Stop(t testing.TestingT, containers []string, options *StopOptions) string

Stop runs the 'docker stop' command for the given containers and return the stdout/stderr. This method fails the test if there are any errors

func StopE

func StopE(t testing.TestingT, containers []string, options *StopOptions) (string, error)

StopE runs the 'docker stop' command for the given containers and returns any errors.

Types

type BuildOptions

type BuildOptions struct {
	// Tags for the Docker image
	Tags []string

	// Build args to pass the 'docker build' command
	BuildArgs []string

	// Custom CLI options that will be passed as-is to the 'docker build' command. This is an "escape hatch" that allows
	// Terratest to not have to support every single command-line option offered by the 'docker build' command, and
	// solely focus on the most important ones.
	OtherOptions []string

	// Set a logger that should be used. See the logger package for more info.
	Logger *logger.Logger
}

BuildOptions defines options that can be passed to the 'docker build' command.

type ContainerInspect

type ContainerInspect struct {
	// ID of the inspected container
	ID string

	// Name of the inspected container
	Name string

	// time.Time that the container was created
	Created time.Time

	// String representing the container's status
	Status string

	// Whether the container is currently running or not
	Running bool

	// Container's exit code
	ExitCode uint8

	// String with the container's error message, if there is any
	Error string

	// Ports exposed by the container
	Ports []Port

	// Volume bindings made to the container
	Binds []VolumeBind

	// Health check
	Health HealthCheck
}

ContainerInspect defines the output of the Inspect method, with the options returned by 'docker inspect' converted into a more friendly and testable interface

func Inspect

func Inspect(t *testing.T, id string) *ContainerInspect

Inspect runs the 'docker inspect {container id}' command and returns a ContainerInspect struct, converted from the output JSON, along with any errors

func InspectE

func InspectE(t *testing.T, id string) (*ContainerInspect, error)

InspectE runs the 'docker inspect {container id}' command and returns a ContainerInspect struct, converted from the output JSON, along with any errors

type HealthCheck

type HealthCheck struct {
	// Health check status
	Status string

	// Current count of failing health checks
	FailingStreak uint8

	// Log of failures
	Log []HealthLog
}

HealthCheck represents the current health history of the container

type HealthLog

type HealthLog struct {
	// Start time of health check
	Start string

	// End time of health check
	End string

	// Exit code of health check
	ExitCode uint8

	// Output of health check
	Output string
}

HealthLog represents the output of a single Health check of the container

type Options

type Options struct {
	WorkingDir string
	EnvVars    map[string]string
	// Set a logger that should be used. See the logger package for more info.
	Logger *logger.Logger
}

Options are Docker options.

type Port

type Port struct {
	HostPort      uint16
	ContainerPort uint16
	Protocol      string
}

Port represents a single port mapping exported by the container

type RunOptions

type RunOptions struct {
	// Override the default COMMAND of the Docker image
	Command []string

	// If set to true, pass the --detach flag to 'docker run' to run the container in the background
	Detach bool

	// Override the default ENTRYPOINT of the Docker image
	Entrypoint string

	// Set environment variables
	EnvironmentVariables []string

	// If set to true, pass the --init flag to 'docker run' to run an init inside the container that forwards signals
	// and reaps processes
	Init bool

	// Assign a name to the container
	Name string

	// If set to true, pass the --privileged flag to 'docker run' to give extended privileges to the container
	Privileged bool

	// If set to true, pass the --rm flag to 'docker run' to automatically remove the container when it exits
	Remove bool

	// If set to true, pass the -tty flag to 'docker run' to allocate a pseudo-TTY
	Tty bool

	// Username or UID
	User string

	// Bind mount these volume(s) when running the container
	Volumes []string

	// Custom CLI options that will be passed as-is to the 'docker run' command. This is an "escape hatch" that allows
	// Terratest to not have to support every single command-line option offered by the 'docker run' command, and
	// solely focus on the most important ones.
	OtherOptions []string

	// Set a logger that should be used. See the logger package for more info.
	Logger *logger.Logger
}

RunOptions defines options that can be passed to the 'docker run' command.

type StopOptions

type StopOptions struct {
	// Seconds to wait for stop before killing the container (default 10)
	Time int

	// Set a logger that should be used. See the logger package for more info.
	Logger *logger.Logger
}

StopOptions defines the options that can be passed to the 'docker stop' command

type VolumeBind

type VolumeBind struct {
	Source      string
	Destination string
}

VolumeBind represents a single volume binding made to the container

Jump to

Keyboard shortcuts

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