container

package
v0.246.3 Latest Latest
Warning

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

Go to latest
Published: Jul 2, 2023 License: MIT Imports: 60 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetDockerClient

func GetDockerClient(ctx context.Context) (cli client.APIClient, err error)

func GetHostInfo

func GetHostInfo(ctx context.Context) (info types.Info, err error)

func ImageExistsLocally

func ImageExistsLocally(ctx context.Context, imageName string, platform string) (bool, error)

ImageExistsLocally returns a boolean indicating if an image with the requested name, tag and architecture exists in the local docker image store

func LoadDockerAuthConfig

func LoadDockerAuthConfig(ctx context.Context, image string) (types.AuthConfig, error)

func LoadDockerAuthConfigs

func LoadDockerAuthConfigs(ctx context.Context) map[string]types.AuthConfig

func NewDockerBuildExecutor

func NewDockerBuildExecutor(input NewDockerBuildExecutorInput) common.Executor

NewDockerBuildExecutor function to create a run executor for the container

func NewDockerNetworkCreateExecutor

func NewDockerNetworkCreateExecutor(name string) common.Executor

func NewDockerNetworkRemoveExecutor

func NewDockerNetworkRemoveExecutor(name string) common.Executor

func NewDockerPullExecutor

func NewDockerPullExecutor(input NewDockerPullExecutorInput) common.Executor

NewDockerPullExecutor function to create a run executor for the container

func NewDockerVolumeRemoveExecutor

func NewDockerVolumeRemoveExecutor(volume string, force bool) common.Executor

func RemoveImage

func RemoveImage(ctx context.Context, imageName string, force bool, pruneChildren bool) (bool, error)

RemoveImage removes image from local store, the function is used to run different container image architectures

func RunnerArch

func RunnerArch(ctx context.Context) string

Arch fetches values from docker info and translates architecture to GitHub actions compatible runner.arch values https://github.com/github/docs/blob/main/data/reusables/actions/runner-arch-description.md

Types

type Container

type Container interface {
	Create(capAdd []string, capDrop []string) common.Executor
	ConnectToNetwork(name string) common.Executor
	Copy(destPath string, files ...*FileEntry) common.Executor
	CopyDir(destPath string, srcPath string, useGitIgnore bool) common.Executor
	GetContainerArchive(ctx context.Context, srcPath string) (io.ReadCloser, error)
	Pull(forcePull bool) common.Executor
	Start(attach bool) common.Executor
	Exec(command []string, env map[string]string, user, workdir string) common.Executor
	UpdateFromEnv(srcPath string, env *map[string]string) common.Executor
	UpdateFromImageEnv(env *map[string]string) common.Executor
	Remove() common.Executor
	Close() common.Executor
	ReplaceLogWriter(io.Writer, io.Writer) (io.Writer, io.Writer)
}

Container for managing docker run containers

type ExecutionsEnvironment

type ExecutionsEnvironment interface {
	Container
	ToContainerPath(string) string
	GetActPath() string
	GetPathVariableName() string
	DefaultPathVariable() string
	JoinPathVariable(...string) string
	GetRunnerContext(ctx context.Context) map[string]interface{}
	// On windows PATH and Path are the same key
	IsEnvironmentCaseInsensitive() bool
}

func NewContainer

func NewContainer(input *NewContainerInput) ExecutionsEnvironment

NewContainer creates a reference to a container

type FileEntry

type FileEntry struct {
	Name string
	Mode int64
	Body string
}

FileEntry is a file to copy to a container

type HostEnvironment

type HostEnvironment struct {
	Path      string
	TmpDir    string
	ToolCache string
	Workdir   string
	ActPath   string
	CleanUp   func()
	StdOut    io.Writer
}

func (*HostEnvironment) Close

func (e *HostEnvironment) Close() common.Executor

func (*HostEnvironment) ConnectToNetwork

func (e *HostEnvironment) ConnectToNetwork(name string) common.Executor

func (*HostEnvironment) Copy

func (e *HostEnvironment) Copy(destPath string, files ...*FileEntry) common.Executor

func (*HostEnvironment) CopyDir

func (e *HostEnvironment) CopyDir(destPath string, srcPath string, useGitIgnore bool) common.Executor

func (*HostEnvironment) Create

func (e *HostEnvironment) Create(capAdd []string, capDrop []string) common.Executor

func (*HostEnvironment) DefaultPathVariable

func (e *HostEnvironment) DefaultPathVariable() string

func (*HostEnvironment) Exec

func (e *HostEnvironment) Exec(command []string, env map[string]string, user, workdir string) common.Executor

func (*HostEnvironment) GetActPath

func (e *HostEnvironment) GetActPath() string

func (*HostEnvironment) GetContainerArchive

func (e *HostEnvironment) GetContainerArchive(ctx context.Context, srcPath string) (io.ReadCloser, error)

func (*HostEnvironment) GetPathVariableName

func (*HostEnvironment) GetPathVariableName() string

func (*HostEnvironment) GetRunnerContext

func (e *HostEnvironment) GetRunnerContext(ctx context.Context) map[string]interface{}

func (*HostEnvironment) IsEnvironmentCaseInsensitive

func (*HostEnvironment) IsEnvironmentCaseInsensitive() bool

func (*HostEnvironment) JoinPathVariable

func (*HostEnvironment) JoinPathVariable(paths ...string) string

func (*HostEnvironment) Pull

func (e *HostEnvironment) Pull(forcePull bool) common.Executor

func (*HostEnvironment) Remove

func (e *HostEnvironment) Remove() common.Executor

func (*HostEnvironment) ReplaceLogWriter

func (e *HostEnvironment) ReplaceLogWriter(stdout io.Writer, stderr io.Writer) (io.Writer, io.Writer)

func (*HostEnvironment) Start

func (e *HostEnvironment) Start(attach bool) common.Executor

func (*HostEnvironment) ToContainerPath

func (e *HostEnvironment) ToContainerPath(path string) string

func (*HostEnvironment) UpdateFromEnv

func (e *HostEnvironment) UpdateFromEnv(srcPath string, env *map[string]string) common.Executor

func (*HostEnvironment) UpdateFromImageEnv

func (e *HostEnvironment) UpdateFromImageEnv(env *map[string]string) common.Executor

type LinuxContainerEnvironmentExtensions

type LinuxContainerEnvironmentExtensions struct {
}

func (*LinuxContainerEnvironmentExtensions) DefaultPathVariable

func (*LinuxContainerEnvironmentExtensions) DefaultPathVariable() string

func (*LinuxContainerEnvironmentExtensions) GetActPath

func (*LinuxContainerEnvironmentExtensions) GetPathVariableName

func (*LinuxContainerEnvironmentExtensions) GetPathVariableName() string

func (*LinuxContainerEnvironmentExtensions) GetRunnerContext

func (*LinuxContainerEnvironmentExtensions) GetRunnerContext(ctx context.Context) map[string]interface{}

func (*LinuxContainerEnvironmentExtensions) IsEnvironmentCaseInsensitive

func (*LinuxContainerEnvironmentExtensions) IsEnvironmentCaseInsensitive() bool

func (*LinuxContainerEnvironmentExtensions) JoinPathVariable

func (*LinuxContainerEnvironmentExtensions) JoinPathVariable(paths ...string) string

func (*LinuxContainerEnvironmentExtensions) ToContainerPath

func (*LinuxContainerEnvironmentExtensions) ToContainerPath(path string) string

Resolves the equivalent host path inside the container This is required for windows and WSL 2 to translate things like C:\Users\Myproject to /mnt/users/Myproject For use in docker volumes and binds

type NewContainerInput

type NewContainerInput struct {
	Image       string
	Username    string
	Password    string
	Entrypoint  []string
	Cmd         []string
	WorkingDir  string
	Env         []string
	Binds       []string
	Mounts      map[string]string
	Name        string
	Stdout      io.Writer
	Stderr      io.Writer
	NetworkMode string
	Privileged  bool
	UsernsMode  string
	Platform    string
	Options     string

	// Gitea specific
	AutoRemove bool

	NetworkAliases []string
	ValidVolumes   []string
}

NewContainerInput the input for the New function

type NewDockerBuildExecutorInput

type NewDockerBuildExecutorInput struct {
	ContextDir string
	Dockerfile string
	Container  Container
	ImageTag   string
	Platform   string
}

NewDockerBuildExecutorInput the input for the NewDockerBuildExecutor function

type NewDockerPullExecutorInput

type NewDockerPullExecutorInput struct {
	Image     string
	ForcePull bool
	Platform  string
	Username  string
	Password  string
}

NewDockerPullExecutorInput the input for the NewDockerPullExecutor function

Jump to

Keyboard shortcuts

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