container

package
v1.4.4 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2025 License: GPL-3.0 Imports: 16 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Monitor added in v1.4.3

func Monitor(ctx context.Context, onRecord func(rec StatsRecord)) error

Monitor is a helper you add into your application (not in the library). As soon as a container dies, it calls onRecord(...) with a StatsRecord.

Types

type ContainerConfig

type ContainerConfig struct {
	Image string
	Cmd   []string
	Tty   bool
}

ContainerConfig struct with Image, Cmd and Tty fields

type ContainerStatsSummary added in v1.3.2

type ContainerStatsSummary struct {
	Duration       time.Duration // Total time the container ran
	LastMemUsage   uint64        // Memory usage in the last stats frame (bytes)
	PeakMemUsage   uint64        // Peak memory usage over the container’s lifetime (bytes)
	LastCPUPercent float64       // CPU percentage in the last stats frame
}

ContainerStatsSummary holds the aggregated stats we want at container exit.

type DockerManager

type DockerManager struct {
	// contains filtered or unexported fields
}

DockerManager struct with cli field

func NewDockerManager

func NewDockerManager() (*DockerManager, error)

Docker manager constructor

func (*DockerManager) Create

func (dm *DockerManager) Create(config ContainerConfig) (string, error)

Function to create a container

func (*DockerManager) EnsureImage added in v1.2.0

func (dm *DockerManager) EnsureImage(imageName string) error

ensureImage checks if there is an image of the container if not it pulls it.

func (*DockerManager) GetLogs

func (dm *DockerManager) GetLogs(containerID string) (string, error)

Function to get logs from a container

func (*DockerManager) GetStats added in v0.11.0

func (dm *DockerManager) GetStats(containerID string) (string, error)

Function to get stats from docker container and format them

func (*DockerManager) GetStatsStreamed added in v1.3.2

func (dm *DockerManager) GetStatsStreamed(
	containerID string,
	startTime time.Time,
	resultCh chan<- ContainerStatsSummary,
	errCh chan<- error,
)

func (*DockerManager) IsRunning added in v0.5.1

func (dm *DockerManager) IsRunning(containerID string) (bool, error)

Function to check if a container is running

func (*DockerManager) Ping added in v1.2.2

func (dm *DockerManager) Ping() error

func (*DockerManager) Remove

func (dm *DockerManager) Remove(containerID string) error

Function to remove a container

func (*DockerManager) Start

func (dm *DockerManager) Start(containerID string) error

Function to start a container

func (*DockerManager) Stop

func (dm *DockerManager) Stop(containerID string, timeout int) error

Function to stop a container

func (*DockerManager) Wait added in v0.4.0

func (dm *DockerManager) Wait(containerID string) (container.WaitResponse, error)

Function to wait for a container

type Manager

type Manager interface {
	Create(config ContainerConfig) (string, error)
	Start(id string) error
	Stop(id string, timeout int) error
	Remove(id string) error
	GetLogs(id string) (string, error)
	Wait(id string) (container.WaitResponse, error)
	IsRunning(id string) (bool, error)
	GetStats(containerID string) (string, error)
	GetStatsStreamed(
		containerID string,
		startTime time.Time,
		resultCh chan<- ContainerStatsSummary,
		errCh chan<- error,
	)
	EnsureImage(image string) error
	Ping() error
}

Manager interface with methods to manage containers

type StatsRecord added in v1.4.3

type StatsRecord struct {
	ID            string        `json:"id"`
	StartTime     time.Time     `json:"start_time"`
	EndTime       time.Time     `json:"end_time"`
	Duration      time.Duration `json:"duration"`
	CPUUsageNs    uint64        `json:"cpu_usage_ns"`
	MemUsageBytes uint64        `json:"mem_usage_bytes"`
	MemMaxBytes   uint64        `json:"mem_max_bytes"`
}

StatsRecord must match (or be convertible from) container.ContainerStatsSummary

Jump to

Keyboard shortcuts

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