Documentation ¶
Overview ¶
Package container contains code related to dealing with docker containers
Index ¶
- func ContainsWatchtowerLabel(labels map[string]string) bool
- func GetRunningContainerID() (cid types.ContainerID, err error)
- type Client
- type ClientOptions
- type Container
- func (c Container) ContainerInfo() *types.ContainerJSON
- func (c Container) Enabled() (bool, bool)
- func (c Container) GetLifecyclePostCheckCommand() string
- func (c Container) GetLifecyclePostUpdateCommand() string
- func (c Container) GetLifecyclePreCheckCommand() string
- func (c Container) GetLifecyclePreUpdateCommand() string
- func (c Container) HasImageInfo() bool
- func (c Container) ID() wt.ContainerID
- func (c Container) ImageID() wt.ImageID
- func (c Container) ImageInfo() *types.ImageInspect
- func (c Container) ImageName() string
- func (c Container) IsMonitorOnly() bool
- func (c Container) IsRestarting() bool
- func (c Container) IsRunning() bool
- func (c Container) IsWatchtower() bool
- func (c Container) Links() []string
- func (c Container) Name() string
- func (c Container) PostUpdateTimeout() int
- func (c Container) PreUpdateTimeout() int
- func (c Container) SafeImageID() wt.ImageID
- func (c Container) Scope() (string, bool)
- func (c Container) StopSignal() string
- func (c Container) ToRestart() bool
- func (c Container) VerifyConfiguration() error
- type WarningStrategy
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ContainsWatchtowerLabel ¶
ContainsWatchtowerLabel takes a map of labels and values and tells the consumer whether it contains a valid watchtower instance label
func GetRunningContainerID ¶ added in v1.5.0
func GetRunningContainerID() (cid types.ContainerID, err error)
GetRunningContainerID tries to resolve the current container ID from the current process cgroup information
Types ¶
type Client ¶
type Client interface { ListContainers(t.Filter) ([]Container, error) GetContainer(containerID t.ContainerID) (Container, error) StopContainer(Container, time.Duration) error StartContainer(Container) (t.ContainerID, error) RenameContainer(Container, string) error IsContainerStale(Container) (stale bool, latestImage t.ImageID, err error) ExecuteCommand(containerID t.ContainerID, command string, timeout int) (SkipUpdate bool, err error) RemoveImageByID(t.ImageID) error WarnOnHeadPullFailed(container Container) bool }
A Client is the interface through which watchtower interacts with the Docker API.
func NewClient ¶
func NewClient(opts ClientOptions) Client
NewClient returns a new Client instance which can be used to interact with the Docker API. The client reads its configuration from the following environment variables:
- DOCKER_HOST the docker-engine host to send api requests to
- DOCKER_TLS_VERIFY whether to verify tls certificates
- DOCKER_API_VERSION the minimum docker api version to work with
type ClientOptions ¶ added in v1.5.0
type ClientOptions struct { PullImages bool RemoveVolumes bool IncludeStopped bool ReviveStopped bool IncludeRestarting bool WarnOnHeadFailed WarningStrategy }
ClientOptions contains the options for how the docker client wrapper should behave
type Container ¶
type Container struct { LinkedToRestarting bool Stale bool // contains filtered or unexported fields }
Container represents a running Docker container.
func NewContainer ¶
func NewContainer(containerInfo *types.ContainerJSON, imageInfo *types.ImageInspect) *Container
NewContainer returns a new Container instance instantiated with the specified ContainerInfo and ImageInfo structs.
func (Container) ContainerInfo ¶ added in v0.3.11
func (c Container) ContainerInfo() *types.ContainerJSON
ContainerInfo fetches JSON info for the container
func (Container) Enabled ¶
Enabled returns the value of the container enabled label and if the label was set.
func (Container) GetLifecyclePostCheckCommand ¶ added in v0.3.10
GetLifecyclePostCheckCommand returns the post-check command set in the container metadata or an empty string
func (Container) GetLifecyclePostUpdateCommand ¶
GetLifecyclePostUpdateCommand returns the post-update command set in the container metadata or an empty string
func (Container) GetLifecyclePreCheckCommand ¶ added in v0.3.10
GetLifecyclePreCheckCommand returns the pre-check command set in the container metadata or an empty string
func (Container) GetLifecyclePreUpdateCommand ¶
GetLifecyclePreUpdateCommand returns the pre-update command set in the container metadata or an empty string
func (Container) HasImageInfo ¶ added in v1.0.3
HasImageInfo returns whether image information could be retrieved for the container
func (Container) ImageID ¶
ImageID returns the ID of the Docker image that was used to start the container. May cause nil dereference if imageInfo is not set!
func (Container) ImageInfo ¶ added in v1.1.0
func (c Container) ImageInfo() *types.ImageInspect
ImageInfo fetches the ImageInspect data of the current container
func (Container) ImageName ¶
ImageName returns the name of the Docker image that was used to start the container. If the original image was specified without a particular tag, the "latest" tag is assumed.
func (Container) IsMonitorOnly ¶ added in v1.0.3
IsMonitorOnly returns the value of the monitor-only label. If the label is not set then false is returned.
func (Container) IsRestarting ¶ added in v1.4.0
IsRestarting returns a boolean flag indicating whether or not the current container is restarting. The status is determined by the value of the container's "State.Restarting" property.
func (Container) IsRunning ¶
IsRunning returns a boolean flag indicating whether or not the current container is running. The status is determined by the value of the container's "State.Running" property.
func (Container) IsWatchtower ¶
IsWatchtower returns a boolean flag indicating whether or not the current container is the watchtower container itself. The watchtower container is identified by the presence of the "com.centurylinklabs.watchtower" label in the container metadata.
func (Container) Links ¶
Links returns a list containing the names of all the containers to which this container is linked.
func (Container) PostUpdateTimeout ¶ added in v1.4.0
PostUpdateTimeout checks whether a container has a specific timeout set for how long the post-update command is allowed to run. This value is expressed either as an integer, in minutes, or as 0 which will allow the command/script to run indefinitely. Users should be cautious with the 0 option, as that could result in watchtower waiting forever.
func (Container) PreUpdateTimeout ¶ added in v1.0.0
PreUpdateTimeout checks whether a container has a specific timeout set for how long the pre-update command is allowed to run. This value is expressed either as an integer, in minutes, or as 0 which will allow the command/script to run indefinitely. Users should be cautious with the 0 option, as that could result in watchtower waiting forever.
func (Container) SafeImageID ¶ added in v1.4.0
SafeImageID returns the ID of the Docker image that was used to start the container if available, otherwise returns an empty string
func (Container) Scope ¶ added in v1.0.3
Scope returns the value of the scope UID label and if the label was set.
func (Container) StopSignal ¶
StopSignal returns the custom stop signal (if any) that is encoded in the container's metadata. If the container has not specified a custom stop signal, the empty string "" is returned.
func (Container) ToRestart ¶
ToRestart return whether the container should be restarted, either because is stale or linked to another stale container.
func (Container) VerifyConfiguration ¶ added in v1.3.0
VerifyConfiguration checks the container and image configurations for nil references to make sure that the container can be recreated once deleted
type WarningStrategy ¶ added in v1.5.0
type WarningStrategy string
WarningStrategy is a value determining when to show warnings
const ( // WarnAlways warns whenever the problem occurs WarnAlways WarningStrategy = "always" // WarnNever never warns when the problem occurs WarnNever WarningStrategy = "never" // WarnAuto skips warning when the problem was expected WarnAuto WarningStrategy = "auto" )