[go: up one dir, main page]

builder

package
v2.0.0-beta.0 Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2025 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package builder defines interfaces for any Docker builder to implement.

Historically, only server-side Dockerfile interpreters existed. This package allows for other implementations of Docker builders.

Index

Constants

View Source
const (
	// DefaultDockerfileName is the Default filename with Docker commands, read by docker build
	DefaultDockerfileName = "Dockerfile"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Backend

type Backend interface {
	ImageBackend
	ExecBackend

	// CommitBuildStep creates a new Docker image from the config generated by
	// a build step.
	CommitBuildStep(context.Context, backend.CommitConfig) (image.ID, error)
	// ContainerCreateWorkdir creates the workdir
	ContainerCreateWorkdir(containerID string) error
	CreateImage(ctx context.Context, config []byte, parent string, contentStoreDigest digest.Digest) (Image, error)

	ImageCacheBuilder
}

Backend abstracts calls to a Docker Daemon.

type ExecBackend

type ExecBackend interface {
	// ContainerAttachRaw attaches to container.
	ContainerAttachRaw(cID string, stdin io.ReadCloser, stdout, stderr io.Writer, stream bool, attached chan struct{}) error
	// ContainerCreateIgnoreImagesArgsEscaped creates a new Docker container and returns potential warnings
	ContainerCreateIgnoreImagesArgsEscaped(ctx context.Context, config backend.ContainerCreateConfig) (container.CreateResponse, error)
	// ContainerRm removes a container specified by `id`.
	ContainerRm(name string, config *backend.ContainerRmConfig) error
	// ContainerStart starts a new container
	ContainerStart(ctx context.Context, containerID string, checkpoint string, checkpointDir string) error
	// ContainerWait stops processing until the given container is stopped.
	ContainerWait(ctx context.Context, name string, condition container.WaitCondition) (<-chan containerpkg.StateStatus, error)
}

ExecBackend contains the interface methods required for executing containers

type Image

type Image interface {
	ImageID() string
	RunConfig() *container.Config
	MarshalJSON() ([]byte, error)
	OperatingSystem() string
}

Image represents a Docker image used by the builder.

type ImageBackend

type ImageBackend interface {
	GetImageAndReleasableLayer(ctx context.Context, refOrID string, opts buildbackend.GetImageAndLayerOptions) (Image, ROLayer, error)
}

ImageBackend are the interface methods required from an image component

type ImageCache

type ImageCache interface {
	// GetCache returns a reference to a cached image whose parent equals `parent`
	// and runconfig equals `cfg`. A cache miss is expected to return an empty ID and a nil error.
	GetCache(parentID string, cfg *container.Config, platform ocispec.Platform) (imageID string, err error)
}

ImageCache abstracts an image cache. (parent image, child runconfig) -> child image

type ImageCacheBuilder

type ImageCacheBuilder interface {
	// MakeImageCache creates a stateful image cache.
	MakeImageCache(ctx context.Context, cacheFrom []string) (ImageCache, error)
}

ImageCacheBuilder represents a generator for stateful image cache.

type ROLayer

type ROLayer interface {
	Release() error
	NewRWLayer() (RWLayer, error)
	DiffID() layer.DiffID
	ContentStoreDigest() digest.Digest
}

ROLayer is a reference to image rootfs layer

type RWLayer

type RWLayer interface {
	Release() error
	Root() string
	Commit() (ROLayer, error)
}

RWLayer is active layer that can be read/modified

type Result

type Result struct {
	ImageID   string
	FromImage Image
}

Result is the output produced by a Builder

type Source

type Source interface {
	// Root returns root path for accessing source
	Root() string
	// Close allows to signal that the filesystem tree won't be used anymore.
	// For Context implementations using a temporary directory, it is recommended to
	// delete the temporary directory in Close().
	Close() error
	// Hash returns a checksum for a file
	Hash(path string) (string, error)
}

Source defines a location that can be used as a source for the ADD/COPY instructions in the builder.

Directories

Path Synopsis
Package dockerfile is the evaluation step in the Dockerfile parse/evaluate pipeline.
Package dockerfile is the evaluation step in the Dockerfile parse/evaluate pipeline.
git
internal/tarsum
Package tarsum provides algorithms to perform checksum calculation on filesystem layers.
Package tarsum provides algorithms to perform checksum calculation on filesystem layers.
urlutil
Package urlutil provides helper function to check if a given build-context location should be considered a URL or a remote Git repository.
Package urlutil provides helper function to check if a given build-context location should be considered a URL or a remote Git repository.

Jump to

Keyboard shortcuts

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