docker

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var StandardLogOptions = &LoggingConfig{
	Driver: "json-file",
	Options: map[string]string{
		"max-size": "10m",
		"max-file": "1",
	},
}

Functions

func CopyFileToVolume

func CopyFileToVolume(ctx context.Context, volumeName string, sourcePath string, destPath string) error

func CopyFromContainer

func CopyFromContainer(ctx context.Context, containerName string, sourcePath string, destPath string) error

func CreateVolume

func CreateVolume(ctx context.Context, volumeName string) error

func GetImageConfig

func GetImageConfig(image string) (map[string]interface{}, error)

func GetImageDigest

func GetImageDigest(image string) (string, error)

func GetImageLabel

func GetImageLabel(image, label string) (string, error)

func MkdirInVolume

func MkdirInVolume(ctx context.Context, volumeName string, directory string) error

func RemoveVolume

func RemoveVolume(ctx context.Context, volumeName string) error

func RunDockerCommand

func RunDockerCommand(ctx context.Context, workingDir string, command ...string) error

func RunDockerCommandBuffered

func RunDockerCommandBuffered(ctx context.Context, workingDir string, command ...string) (string, error)

func RunDockerCommandLine

func RunDockerCommandLine(ctx context.Context, workingDir string, command string) error

func RunDockerCommandRetry

func RunDockerCommandRetry(ctx context.Context, workingDir string, retries int, command ...string) error

func RunDockerComposeCommand

func RunDockerComposeCommand(ctx context.Context, workingDir string, command ...string) error

func RunDockerComposeCommandReturnsStdout

func RunDockerComposeCommandReturnsStdout(workingDir string, command ...string) ([]byte, error)

Types

type CtxComposeVersionKey

type CtxComposeVersionKey struct{}

type CtxIsLogCmdKey

type CtxIsLogCmdKey struct{}

type DependsOn

type DependsOn map[string]map[string]string

type DockerComposeConfig

type DockerComposeConfig struct {
	Version  string              `yaml:"version,omitempty"`
	Services map[string]*Service `yaml:"services,omitempty"`
	Volumes  map[string]struct{} `yaml:"volumes,omitempty"`
}

func CreateDockerCompose

func CreateDockerCompose(s *types.Stack) *DockerComposeConfig

type DockerComposeVersion

type DockerComposeVersion int
const (
	None DockerComposeVersion = iota
	ComposeV1
	ComposeV2
)

func CheckDockerConfig

func CheckDockerConfig() (DockerComposeVersion, error)

type DockerManager

type DockerManager struct{}

DockerManager implements IDockerManager

func NewDockerManager

func NewDockerManager() *DockerManager

func (*DockerManager) CopyFileToVolume

func (mgr *DockerManager) CopyFileToVolume(ctx context.Context, volumeName string, sourcePath string, destPath string) error

func (*DockerManager) CopyFromContainer

func (mgr *DockerManager) CopyFromContainer(ctx context.Context, containerName string, sourcePath string, destPath string) error

func (*DockerManager) CreateVolume

func (mgr *DockerManager) CreateVolume(ctx context.Context, volumeName string) error

func (*DockerManager) GetImageConfig

func (mgr *DockerManager) GetImageConfig(image string) (map[string]interface{}, error)

func (*DockerManager) GetImageDigest

func (mgr *DockerManager) GetImageDigest(image string) (string, error)

func (*DockerManager) GetImageLabel

func (mgr *DockerManager) GetImageLabel(image, label string) (string, error)

func (*DockerManager) MkdirInVolume

func (mgr *DockerManager) MkdirInVolume(ctx context.Context, volumeName string, directory string) error

func (*DockerManager) RemoveVolume

func (mgr *DockerManager) RemoveVolume(ctx context.Context, volumeName string) error

func (*DockerManager) RunDockerCommand

func (mgr *DockerManager) RunDockerCommand(ctx context.Context, workingDir string, command ...string) error

func (*DockerManager) RunDockerCommandBuffered

func (mgr *DockerManager) RunDockerCommandBuffered(ctx context.Context, workingDir string, command ...string) (string, error)

func (*DockerManager) RunDockerCommandLine

func (mgr *DockerManager) RunDockerCommandLine(ctx context.Context, workingDir string, command string) error

func (*DockerManager) RunDockerComposeCommand

func (mgr *DockerManager) RunDockerComposeCommand(ctx context.Context, workingDir string, command ...string) error

func (*DockerManager) RunDockerComposeCommandReturnsStdout

func (mgr *DockerManager) RunDockerComposeCommandReturnsStdout(workingDir string, command ...string) ([]byte, error)

type HealthCheck

type HealthCheck struct {
	Test     []string `yaml:"test,omitempty"`
	Interval string   `yaml:"interval,omitempty"`
	Timeout  string   `yaml:"timeout,omitempty"`
	Retries  int      `yaml:"retries,omitempty"`
}

type IDockerManager

type IDockerManager interface {
	// Command Execution
	RunDockerCommand(ctx context.Context, workingDir string, command ...string) error
	RunDockerCommandLine(ctx context.Context, workingDir string, command string) error
	RunDockerComposeCommand(ctx context.Context, workingDir string, command ...string) error
	RunDockerCommandBuffered(ctx context.Context, workingDir string, command ...string) (string, error)
	RunDockerComposeCommandReturnsStdout(workingDir string, command ...string) ([]byte, error)

	// Image Inspection
	GetImageConfig(image string) (map[string]interface{}, error)
	GetImageLabel(image, label string) (string, error)
	GetImageDigest(image string) (string, error)

	// Volume Management
	CreateVolume(ctx context.Context, volumeName string) error
	CopyFileToVolume(ctx context.Context, volumeName string, sourcePath string, destPath string) error
	MkdirInVolume(ctx context.Context, volumeName string, directory string) error
	RemoveVolume(ctx context.Context, volumeName string) error

	// Container Interaction
	CopyFromContainer(ctx context.Context, containerName string, sourcePath string, destPath string) error
}

DockerInterface combines all Docker-related operations into a single interface.

type LoggingConfig

type LoggingConfig struct {
	Driver  string            `yaml:"driver,omitempty"`
	Options map[string]string `yaml:"options,omitempty"`
}

type Service

type Service struct {
	ContainerName string                       `yaml:"container_name,omitempty"`
	Image         string                       `yaml:"image,omitempty"`
	Build         string                       `yaml:"build,omitempty"`
	User          string                       `yaml:"user,omitempty"`
	Command       string                       `yaml:"command,omitempty"`
	Environment   map[string]interface{}       `yaml:"environment,omitempty"`
	Volumes       []string                     `yaml:"volumes,omitempty"`
	Ports         []string                     `yaml:"ports,omitempty"`
	DependsOn     map[string]map[string]string `yaml:"depends_on,omitempty"`
	HealthCheck   *HealthCheck                 `yaml:"healthcheck,omitempty"`
	Logging       *LoggingConfig               `yaml:"logging,omitempty"`
	WorkingDir    string                       `yaml:"working_dir,omitempty"`
	EntryPoint    []string                     `yaml:"entrypoint,omitempty"`
	EnvFile       string                       `yaml:"env_file,omitempty"`
	Expose        []int                        `yaml:"expose,omitempty"`
	Deploy        map[string]interface{}       `yaml:"deploy,omitempty"`
	Platform      string                       `yaml:"platform,omitempty"`
	ExtraHosts    []string                     `yaml:"extra_hosts,omitempty"`
}

type ServiceDefinition

type ServiceDefinition struct {
	ServiceName string
	Service     *Service
	VolumeNames []string
}

Directories

Path Synopsis
DockerManager is a mock that implements IDockerManager
DockerManager is a mock that implements IDockerManager

Jump to

Keyboard shortcuts

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