Documentation
¶
Overview ¶
Package moby implements the Docker/Moby EngineClient.
Index ¶
- Constants
- type MobyAPIClient
- type MobyWatcher
- func (mw *MobyWatcher) API() string
- func (mw *MobyWatcher) Client() any
- func (mw *MobyWatcher) Close()
- func (mw *MobyWatcher) ID(ctx context.Context) string
- func (mw *MobyWatcher) Inspect(ctx context.Context, nameorid string) (*whalewatcher.Container, error)
- func (mw *MobyWatcher) LifecycleEvents(ctx context.Context) (<-chan engineclient.ContainerEvent, <-chan error)
- func (mw *MobyWatcher) List(ctx context.Context) ([]*whalewatcher.Container, error)
- func (mw *MobyWatcher) PID() int
- func (mw *MobyWatcher) Preflight(ctx context.Context)
- func (mw *MobyWatcher) Type() string
- func (mw *MobyWatcher) Version(ctx context.Context) string
- type NewOption
Constants ¶
const ComposerProjectLabel = "com.docker.compose.project"
ComposerProjectLabel is the name of an optional container label identifying the composer project a container is part of.
const PrivilegedLabel = "github.com/thediveo/whalewatcher/moby/privileged"
PrivilegedLabel is the name of an optional container label signalling by its sheer presence that labelled container has been started with a host config that includes Privileged. The label's value is always empty, so neither "true" nor "false" values here.
const Type = "docker.com"
Type specifies this container engine's type identifier.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MobyAPIClient ¶
type MobyAPIClient interface {
client.ContainerAPIClient
client.SystemAPIClient
DaemonHost() string
Close() error
}
MobyAPIClient is a Docker client offering the container and system APIs. For production, Docker's client.Client is a compatible implementation, for unit testing our very own mockingmoby.MockingMoby.
type MobyWatcher ¶
type MobyWatcher struct {
// contains filtered or unexported fields
}
MobyWatcher is a Docker-engine EngineClient for interfacing the generic whale watching with Docker daemons.
func NewMobyWatcher ¶
func NewMobyWatcher(moby MobyAPIClient, opts ...NewOption) *MobyWatcher
NewMobyWatcher returns a new MobyWatcher using the specified Docker engine client; typically, you would want to use this lower-level constructor only in unit tests and instead use watcher.moby.New instead in most use cases.
func (*MobyWatcher) API ¶
func (mw *MobyWatcher) API() string
API returns the container engine API path.
func (*MobyWatcher) Client ¶
func (mw *MobyWatcher) Client() any
Client returns the underlying engine client (engine-specific).
func (*MobyWatcher) Close ¶
func (mw *MobyWatcher) Close()
Close cleans up and release any engine client resources, if necessary.
func (*MobyWatcher) ID ¶
func (mw *MobyWatcher) ID(ctx context.Context) string
ID returns the (more or less) unique engine identifier; the exact format is engine-specific.
func (*MobyWatcher) Inspect ¶
func (mw *MobyWatcher) Inspect(ctx context.Context, nameorid string) (*whalewatcher.Container, error)
Inspect (only) those container details of interest to us, given the name or ID of a container. If inspection fails, it returns an error instead.
func (*MobyWatcher) LifecycleEvents ¶
func (mw *MobyWatcher) LifecycleEvents(ctx context.Context) (<-chan engineclient.ContainerEvent, <-chan error)
LifecycleEvents streams container engine events, limited just to those events in the lifecycle of containers getting born (=alive, as opposed to, say, "conceived") and die.
func (*MobyWatcher) List ¶
func (mw *MobyWatcher) List(ctx context.Context) ([]*whalewatcher.Container, error)
List all the currently alive and kicking containers, but do not list any containers without any processes.
func (*MobyWatcher) PID ¶
func (mw *MobyWatcher) PID() int
PID returns the container engine PID, when known.
func (*MobyWatcher) Preflight ¶
func (mw *MobyWatcher) Preflight(ctx context.Context)
Preflight allows an engine client to do some final pre-flight operations that might require talking to a particular engine and thus should be controlled by a context.
func (*MobyWatcher) Type ¶
func (mw *MobyWatcher) Type() string
Type returns the type identifier for this container engine.
type NewOption ¶
type NewOption func(*MobyWatcher)
NewOption represents options to NewMobyWatcher when creating new watchers keeping eyes on moby engines.
func WithDemonType ¶
WithDemonType overrides the default “docker.com” engine type for other, Docker API-compatible container engines.
func WithRucksackPacker ¶
func WithRucksackPacker(packer engineclient.RucksackPacker) NewOption
WithRucksackPacker sets the Rucksack packer that adds application-specific container information based on the inspected container data. The specified Rucksack packer gets passed the inspection data in form of a Docker client types.ContainerJSON.