v3 – github.com/ory/dockertest/v3 Index | Files | Directories

package dockertest

import "github.com/ory/dockertest/v3"

Index

Variables

var (
	ErrNotInContainer = errors.New("not running in container")
)

Types

type BuildOptions

type BuildOptions struct {
	Dockerfile string
	ContextDir string
	BuildArgs  []dc.BuildArg
	Platform   string
	// Version specifies the builder to use. "1" for classic, "2" for BuildKit
	Version string
	Auth    dc.AuthConfigurations
}

BuildOptions is used to pass in optional parameters when building a container

type ExecOptions

type ExecOptions struct {
	// Command environment, optional.
	Env []string

	// StdIn will be attached as command stdin if provided.
	StdIn io.Reader

	// StdOut will be attached as command stdout if provided.
	StdOut io.Writer

	// StdErr will be attached as command stdout if provided.
	StdErr io.Writer

	// Allocate TTY for command or not.
	TTY bool
}

type Network

type Network struct {
	Network *dc.Network
	// contains filtered or unexported fields
}

Network represents a docker network.

func (*Network) Close

func (n *Network) Close() error

Close removes network by calling pool.RemoveNetwork.

type Pool

type Pool struct {
	Client  *dc.Client
	MaxWait time.Duration
}

Pool represents a connection to the docker API and is used to create and remove docker images.

func NewPool

func NewPool(endpoint string) (*Pool, error)

NewPool creates a new pool. You can pass an empty string to use the default, which is taken from the environment variable DOCKER_HOST and DOCKER_URL, or from docker-machine if the environment variable DOCKER_MACHINE_NAME is set, or if neither is defined a sensible default for the operating system you are on. TLS pools are automatically configured if the DOCKER_CERT_PATH environment variable exists.

func NewTLSPool

func NewTLSPool(endpoint, certpath string) (*Pool, error)

NewTLSPool creates a new pool given an endpoint and the certificate path. This is required for endpoints that require TLS communication.

func (*Pool) BuildAndRun

func (d *Pool) BuildAndRun(name, dockerfilePath string, env []string) (*Resource, error)

BuildAndRun builds and starts a docker container

func (*Pool) BuildAndRunWithBuildOptions

func (d *Pool) BuildAndRunWithBuildOptions(buildOpts *BuildOptions, runOpts *RunOptions, hcOpts ...func(*dc.HostConfig)) (*Resource, error)

BuildAndRunWithBuildOptions builds and starts a docker container. Optional modifier functions can be passed in order to change the hostconfig values not covered in RunOptions

func (*Pool) BuildAndRunWithOptions

func (d *Pool) BuildAndRunWithOptions(dockerfilePath string, opts *RunOptions, hcOpts ...func(*dc.HostConfig)) (*Resource, error)

BuildAndRunWithOptions builds and starts a docker container. Optional modifier functions can be passed in order to change the hostconfig values not covered in RunOptions

func (*Pool) ContainerByName

func (d *Pool) ContainerByName(containerName string) (*Resource, bool)

ContainerByName finds a container with the given name and returns it if present

func (*Pool) CreateNetwork

func (d *Pool) CreateNetwork(name string, opts ...func(config *dc.CreateNetworkOptions)) (*Network, error)

CreateNetwork creates docker network. It's useful for linking multiple containers.

func (*Pool) CurrentContainer

func (d *Pool) CurrentContainer() (*Resource, error)

CurrentContainer returns current container descriptor if this function called within running container. It returns ErrNotInContainer as error if this function running not in container.

func (*Pool) NetworksByName

func (d *Pool) NetworksByName(name string) ([]Network, error)

NetworksByName returns a list of docker networks filtered by name

func (*Pool) Purge

func (d *Pool) Purge(r *Resource) error

Purge removes a container and linked volumes from docker.

func (*Pool) RemoveContainerByName

func (d *Pool) RemoveContainerByName(containerName string) error

RemoveContainerByName find a container with the given name and removes it if present

func (*Pool) RemoveNetwork

func (d *Pool) RemoveNetwork(network *Network) error

RemoveNetwork disconnects containers and removes provided network.

func (*Pool) Retry

func (d *Pool) Retry(op func() error) error

Retry is an exponential backoff retry helper. You can use it to wait for e.g. mysql to boot up.

func (*Pool) Run

func (d *Pool) Run(repository, tag string, env []string) (*Resource, error)

Run starts a docker container.

pool.Run("mysql", "5.3", []string{"FOO=BAR", "BAR=BAZ"})

func (*Pool) RunWithOptions

func (d *Pool) RunWithOptions(opts *RunOptions, hcOpts ...func(*dc.HostConfig)) (*Resource, error)

RunWithOptions starts a docker container. Optional modifier functions can be passed in order to change the hostconfig values not covered in RunOptions

 pool.RunWithOptions(&RunOptions{Repository: "mongo", Cmd: []string{"mongod", "--smallfiles"}})
 pool.RunWithOptions(&RunOptions{Repository: "mongo", Cmd: []string{"mongod", "--smallfiles"}}, func(hostConfig *dc.HostConfig) {
			hostConfig.ShmSize = shmemsize
		})

type Resource

type Resource struct {
	Container *dc.Container
	// contains filtered or unexported fields
}

Resource represents a docker container.

func (*Resource) Close

func (r *Resource) Close() error

Close removes a container and linked volumes from docker by calling pool.Purge.

func (*Resource) ConnectToNetwork

func (r *Resource) ConnectToNetwork(network *Network) error

ConnectToNetwork connects container to network.

func (*Resource) DisconnectFromNetwork

func (r *Resource) DisconnectFromNetwork(network *Network) error

DisconnectFromNetwork disconnects container from network.

func (*Resource) Exec

func (r *Resource) Exec(cmd []string, opts ExecOptions) (exitCode int, err error)

Exec executes command within container.

func (*Resource) Expire

func (r *Resource) Expire(seconds uint) error

Expire sets a resource's associated container to terminate after a period has passed

func (*Resource) GetBoundIP

func (r *Resource) GetBoundIP(id string) string

GetBoundIP returns a resource's published IP address.

func (*Resource) GetHostPort

func (r *Resource) GetHostPort(portID string) string

GetHostPort returns a resource's published port with an address.

func (*Resource) GetIPInNetwork

func (r *Resource) GetIPInNetwork(network *Network) string

GetIPInNetwork returns container IP address in network.

func (*Resource) GetPort

func (r *Resource) GetPort(id string) string

GetPort returns a resource's published port. You can use it to connect to the service via localhost, e.g. tcp://localhost:1231/

type RunOptions

type RunOptions struct {
	Hostname     string
	Name         string
	Repository   string
	Tag          string
	Env          []string
	Entrypoint   []string
	Cmd          []string
	Mounts       []string
	Links        []string
	ExposedPorts []string
	ExtraHosts   []string
	CapAdd       []string
	SecurityOpt  []string
	DNS          []string
	WorkingDir   string
	NetworkID    string
	Networks     []*Network // optional networks to join
	Labels       map[string]string
	Auth         dc.AuthConfiguration
	PortBindings map[dc.Port][]dc.PortBinding
	Privileged   bool
	User         string
	Tty          bool
	Platform     string
}

RunOptions is used to pass in optional parameters when running a container.

Source Files

dockertest.go

Directories

PathSynopsis
dockerPackage docker provides a client for the Docker remote API.
docker/opts
docker/pkg
docker/pkg/archive
docker/pkg/fileutils
docker/pkg/homedir
docker/pkg/idtools
docker/pkg/ioutils
docker/pkg/jsonmessage
docker/pkg/longpath
docker/pkg/mount
docker/pkg/poolsPackage pools provides a collection of pools which provide various data types with buffers.
docker/pkg/stdcopy
docker/pkg/system
docker/typesPackage types is used for API stability in the types and response to the consumers of the API stats endpoint.
docker/types/blkiodev
docker/types/container
docker/types/filtersPackage filters provides tools for encoding a mapping of keys to a set of multiple values.
docker/types/mount
docker/types/network
docker/types/registry
docker/types/strslice
docker/types/versions
docker/types/versions/v1p19Package v1p19 provides specific API types for the API version 1, patch 19.
docker/types/versions/v1p20Package v1p20 provides specific API types for the API version 1, patch 20.
Version
v3.12.0 (latest)
Published
Mar 12, 2025
Platform
js/wasm
Imports
12 packages
Last checked
1 hour ago

Tools for package owners.