docker

package
v0.17.0-rc.2 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2026 License: Apache-2.0 Imports: 51 Imported by: 1

Documentation

Index

Constants

View Source
const DockerCommandEnvVarName = "R8_DOCKER_COMMAND"

Variables

View Source
var ErrMissingDeviceDriver = errors.New("Docker is missing required device driver")

Functions

func DockerCommandFromEnvironment added in v0.14.0

func DockerCommandFromEnvironment() string

func GetHostPortForContainer added in v0.14.11

func GetHostPortForContainer(ctx context.Context, dockerCommand command.Command, containerID string, containerPort int) (int, error)

func NewClient added in v0.14.12

func NewClient(ctx context.Context, opts ...Option) (*apiClient, error)

func ParseSecretsFromHost added in v0.15.0

func ParseSecretsFromHost(workingDir string, secrets []string) (secrets.SecretStore, error)

func Push added in v0.0.8

func Push(ctx context.Context, image string, projectDir string, command command.Command, buildInfo BuildInfo, client *http.Client) error

func Run added in v0.0.8

func Run(ctx context.Context, dockerClient command.Command, options command.RunOptions) error

func RunDaemon added in v0.0.8

func RunDaemon(ctx context.Context, dockerClient command.Command, options command.RunOptions, stderr io.Writer) (string, error)

func RunWithIO added in v0.0.8

func RunWithIO(ctx context.Context, dockerClient command.Command, options command.RunOptions, stdin io.Reader, stdout, stderr io.Writer) error

func SaveLoginToken added in v0.0.8

func SaveLoginToken(ctx context.Context, registryHost string, username string, token string) error

func StandardPush added in v0.14.0

func StandardPush(ctx context.Context, image string, command command.Command) error

Types

type BuildInfo added in v0.14.0

type BuildInfo struct {
	BuildTime time.Duration
	BuildID   string
}

type CredentialHelperInput added in v0.14.0

type CredentialHelperInput struct {
	Username  string
	Secret    string //nolint:gosec // G117: this is a Docker credential, not a hardcoded secret
	ServerURL string
}

type Option added in v0.14.12

type Option func(*clientOptions)

func WithAuthConfig added in v0.14.12

func WithAuthConfig(authConfig registry.AuthConfig) Option

func WithHost added in v0.15.10

func WithHost(host string) Option

type ProgressWriter added in v0.17.0

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

ProgressWriter adapts push progress callbacks to Docker's jsonmessage rendering.

This uses the same ANSI cursor movement and progress display as `docker push`, which handles terminal resizing correctly: each line is erased and rewritten individually (ESC[2K + cursor up/down per line), rather than relying on a bulk cursor-up count that can desync when lines wrap after a terminal resize.

func NewProgressWriter added in v0.17.0

func NewProgressWriter() *ProgressWriter

NewProgressWriter creates a ProgressWriter that renders push progress to stderr using Docker's jsonmessage format, matching the output of `docker push`.

func (*ProgressWriter) Close added in v0.17.0

func (p *ProgressWriter) Close()

Close shuts down the progress display. Safe to call multiple times.

func (*ProgressWriter) Write added in v0.17.0

func (p *ProgressWriter) Write(id, status string, current, total int64)

Write sends a progress update for a specific layer/artifact. id is a unique identifier for the item (layer digest, artifact name). status is the current operation (e.g. "Pushing"). current and total are the byte counts for the progress bar.

func (*ProgressWriter) WriteStatus added in v0.17.0

func (p *ProgressWriter) WriteStatus(id, status string)

WriteStatus sends a status-only message for a specific layer/artifact (no progress bar), e.g. "Pushed", "FAILED", or retry messages.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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