build

package
v0.28.0 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2025 License: Apache-2.0 Imports: 82 Imported by: 14

Documentation

Index

Constants

View Source
const DockerfileLabel = "com.docker.image.source.entrypoint"

Variables

View Source
var ErrRestart = errors.New("build: restart")

Functions

func Build

func Build(ctx context.Context, nodes []builder.Node, opts map[string]Options, docker *dockerutil.Client, cfg *confutil.Config, w progress.Writer) (resp map[string]*client.SolveResponse, err error)

func BuildWithResultHandler added in v0.9.0

func BuildWithResultHandler(ctx context.Context, nodes []builder.Node, opts map[string]Options, docker *dockerutil.Client, cfg *confutil.Config, w progress.Writer, bh *Handler) (resp map[string]*client.SolveResponse, err error)

func CreateCaches added in v0.25.0

func CreateCaches(entries []*buildflags.CacheOptionsEntry) []client.CacheOptionsEntry

func CreateExports added in v0.25.0

func CreateExports(entries []*buildflags.ExportEntry) ([]client.ExportEntry, []string, error)

func CreateSSH added in v0.25.0

func CreateSSH(ssh []*buildflags.SSH) (session.Attachable, error)

func CreateSecrets added in v0.25.0

func CreateSecrets(secrets []*buildflags.Secret) (session.Attachable, error)

func Dial added in v0.13.0

func Dial(ctx context.Context, nodes []builder.Node, pw progress.Writer, platform *ocispecs.Platform) (net.Conn, error)

func IsRemoteURL added in v0.11.0

func IsRemoteURL(c string) bool

func ReadSourcePolicy added in v0.11.0

func ReadSourcePolicy() (*spb.Policy, error)

ReadSourcePolicy reads a source policy from a file. The file path is taken from EXPERIMENTAL_BUILDKIT_SOURCE_POLICY env var. if the env var is not set, this `returns nil, nil`

Types

type CallFunc added in v0.17.0

type CallFunc struct {
	Name         string
	Format       string
	IgnoreStatus bool
}

type Container added in v0.11.0

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

func NewContainer added in v0.11.0

func NewContainer(ctx context.Context, resultCtx *ResultHandle, cfg *InvokeConfig) (*Container, error)

func (*Container) Cancel added in v0.11.0

func (c *Container) Cancel()

func (*Container) Exec added in v0.11.0

func (c *Container) Exec(ctx context.Context, cfg *InvokeConfig, stdin io.ReadCloser, stdout io.WriteCloser, stderr io.WriteCloser) error

func (*Container) IsUnavailable added in v0.11.0

func (c *Container) IsUnavailable() bool

type EvaluateFunc added in v0.26.0

type EvaluateFunc func(ctx context.Context, name string, c gateway.Client, res *gateway.Result, opt Options) error

type Handler added in v0.25.0

type Handler struct {
	Evaluate EvaluateFunc
}

type Inputs

type Inputs struct {
	ContextPath      string
	DockerfilePath   string
	InStream         *SyncMultiReader
	ContextState     *llb.State
	DockerfileInline string
	NamedContexts    map[string]NamedContext
	// DockerfileMappingSrc and DockerfileMappingDst are filled in by the builder.
	DockerfileMappingSrc string
	DockerfileMappingDst string
}

type InvokeConfig added in v0.25.0

type InvokeConfig struct {
	Entrypoint []string  `json:"entrypoint,omitempty"`
	Cmd        []string  `json:"cmd,omitempty"`
	NoCmd      bool      `json:"noCmd,omitempty"`
	Env        []string  `json:"env,omitempty"`
	User       string    `json:"user,omitempty"`
	NoUser     bool      `json:"noUser,omitempty"`
	Cwd        string    `json:"cwd,omitempty"`
	NoCwd      bool      `json:"noCwd,omitempty"`
	Tty        bool      `json:"tty,omitempty"`
	Rollback   bool      `json:"rollback,omitempty"`
	Initial    bool      `json:"initial,omitempty"`
	SuspendOn  SuspendOn `json:"suspendOn,omitempty"`
}

func (*InvokeConfig) NeedsDebug added in v0.25.0

func (cfg *InvokeConfig) NeedsDebug(err error) bool

type NamedContext added in v0.8.0

type NamedContext struct {
	Path  string
	State *llb.State
}

type Options

type Options struct {
	Inputs Inputs

	Ref                        string
	Allow                      []string
	Attests                    map[string]*string
	BuildArgs                  map[string]string
	CacheFrom                  []client.CacheOptionsEntry
	CacheTo                    []client.CacheOptionsEntry
	CgroupParent               string
	Exports                    []client.ExportEntry
	ExportsLocalPathsTemporary []string // should be removed after client.ExportEntry update in buildkit v0.19.0
	ExtraHosts                 []string
	Labels                     map[string]string
	NetworkMode                string
	NoCache                    bool
	NoCacheFilter              []string
	Platforms                  []ocispecs.Platform
	Pull                       bool
	SecretSpecs                buildflags.Secrets
	SSHSpecs                   []*buildflags.SSH
	ShmSize                    opts.MemBytes
	Tags                       []string
	Target                     string
	Ulimits                    *opts.UlimitOpt

	Session                []session.Attachable
	Linked                 bool // Linked marks this target as exclusively linked (not requested by the user).
	CallFunc               *CallFunc
	ProvenanceResponseMode confutil.MetadataProvenanceMode
	SourcePolicy           *spb.Policy
	GroupRef               string
	Annotations            map[exptypes.AnnotationKey]string // Not used during build, annotations are already set in Exports. Just used to check for support with drivers.
}

type ResultHandle added in v0.11.0

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

ResultHandle is a build result with the client that built it.

func NewResultHandle added in v0.11.0

func NewResultHandle(ctx context.Context, c gateway.Client, ref gateway.Reference, meta map[string][]byte, err error) *ResultHandle

NewResultHandle stores a gateway client, gateway reference, and the error from an evaluate call if it is present.

This ResultHandle can be used to execute additional build steps in the same context as the build occurred, which can allow easy debugging of build failures and successes.

If the returned ResultHandle is not nil, the caller must call Done() on it.

func (*ResultHandle) Done added in v0.11.0

func (r *ResultHandle) Done()

func (*ResultHandle) NewContainer added in v0.25.0

func (r *ResultHandle) NewContainer(ctx context.Context, cfg *InvokeConfig) (gateway.Container, error)

func (*ResultHandle) StatFile added in v0.27.0

func (r *ResultHandle) StatFile(ctx context.Context, fpath string, cfg *InvokeConfig) (*types.Stat, error)

type SuspendOn added in v0.25.0

type SuspendOn int
const (
	SuspendError SuspendOn = iota
	SuspendAlways
)

func (SuspendOn) DebugEnabled added in v0.25.0

func (s SuspendOn) DebugEnabled(err error) bool

func (*SuspendOn) UnmarshalText added in v0.26.0

func (s *SuspendOn) UnmarshalText(text []byte) error

type SyncMultiReader added in v0.17.0

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

func NewSyncMultiReader added in v0.17.0

func NewSyncMultiReader(source io.Reader) *SyncMultiReader

func (*SyncMultiReader) NewReadCloser added in v0.17.0

func (mr *SyncMultiReader) NewReadCloser() io.ReadCloser

func (*SyncMultiReader) Peek added in v0.17.0

func (mr *SyncMultiReader) Peek(n int) ([]byte, error)

func (*SyncMultiReader) Reset added in v0.17.0

func (mr *SyncMultiReader) Reset(dt []byte)

Jump to

Keyboard shortcuts

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