docker: Index | Files | Directories

package builder

import ""

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.


Package Files



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

type Backend Uses

type Backend interface {

    // CommitBuildStep creates a new Docker image from the config generated by
    // a build step.
    CommitBuildStep(backend.CommitConfig) (image.ID, error)
    // ContainerCreateWorkdir creates the workdir
    ContainerCreateWorkdir(containerID string) error

    CreateImage(config []byte, parent string) (Image, error)


Backend abstracts calls to a Docker Daemon.

type ExecBackend Uses

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(config types.ContainerCreateConfig) (container.ContainerCreateCreatedBody, error)
    // ContainerRm removes a container specified by `id`.
    ContainerRm(name string, config *types.ContainerRmConfig) error
    // ContainerKill stops the container execution abruptly.
    ContainerKill(containerID string, sig uint64) error
    // ContainerStart starts a new container
    ContainerStart(containerID string, hostConfig *container.HostConfig, checkpoint string, checkpointDir string) error
    // ContainerWait stops processing until the given container is stopped.
    ContainerWait(ctx context.Context, name string, condition containerpkg.WaitCondition) (<-chan containerpkg.StateStatus, error)

ExecBackend contains the interface methods required for executing containers

type Image Uses

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

Image represents a Docker image used by the builder.

type ImageBackend Uses

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

ImageBackend are the interface methods required from an image component

type ImageCache Uses

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) (imageID string, err error)

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

type ImageCacheBuilder Uses

type ImageCacheBuilder interface {
    // MakeImageCache creates a stateful image cache.
    MakeImageCache(cacheFrom []string) ImageCache

ImageCacheBuilder represents a generator for stateful image cache.

type ROLayer Uses

type ROLayer interface {
    Release() error
    NewRWLayer() (RWLayer, error)
    DiffID() layer.DiffID

ROLayer is a reference to image rootfs layer

type RWLayer Uses

type RWLayer interface {
    Release() error
    Root() containerfs.ContainerFS
    Commit() (ROLayer, error)

RWLayer is active layer that can be read/modified

type Result Uses

type Result struct {
    ImageID   string
    FromImage Image

Result is the output produced by a Builder

type Source Uses

type Source interface {
    // Root returns root path for accessing source
    Root() containerfs.ContainerFS
    // 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.


dockerfilePackage dockerfile is the evaluation step in the Dockerfile parse/evaluate pipeline.
dockerignorePackage dockerignore is deprecated.
remotecontextPackage remotecontext is a generated protocol buffer package.

Package builder imports 9 packages (graph) and is imported by 1548 packages. Updated 2021-01-10. Refresh now. Tools for package owners.