38 lines
1.8 KiB
Go
38 lines
1.8 KiB
Go
package dockerclient
|
|
|
|
import "context"
|
|
|
|
// Client is the narrow Docker port consumed by `internal/runtime`. The
|
|
// production adapter is *Adapter (see adapter.go); tests substitute a
|
|
// hand-rolled stub or generated mock.
|
|
//
|
|
// Method semantics:
|
|
//
|
|
// - EnsureNetwork verifies a user-defined Docker network exists on
|
|
// the daemon. Adapter never creates networks.
|
|
// - PullImage pulls ref according to policy. Implementations must
|
|
// honour PullPolicyNever by skipping the pull and returning nil
|
|
// when the image is already present, or ErrImageNotFound otherwise.
|
|
// - InspectImage / InspectContainer return ErrImageNotFound /
|
|
// ErrContainerNotFound for missing inputs.
|
|
// - Run creates and starts one container. The returned RunResult
|
|
// carries the container id, the stable engine endpoint URL, and
|
|
// the wall-clock observed by the daemon.
|
|
// - Stop sends SIGTERM and waits up to the spec timeout before
|
|
// SIGKILL. Returns ErrContainerNotFound when the target is already
|
|
// gone.
|
|
// - Remove deletes the container. Idempotent: nil when already
|
|
// removed.
|
|
// - List returns container summaries that match filter. Adapter
|
|
// translates filter.Labels into the daemon-side filters argument.
|
|
type Client interface {
|
|
EnsureNetwork(ctx context.Context, name string) error
|
|
PullImage(ctx context.Context, ref string, policy PullPolicy) error
|
|
InspectImage(ctx context.Context, ref string) (ImageInspect, error)
|
|
InspectContainer(ctx context.Context, idOrName string) (ContainerInspect, error)
|
|
Run(ctx context.Context, spec RunSpec) (RunResult, error)
|
|
Stop(ctx context.Context, idOrName string, timeoutSeconds int) error
|
|
Remove(ctx context.Context, idOrName string) error
|
|
List(ctx context.Context, filter ListFilter) ([]ContainerSummary, error)
|
|
}
|