package client

import "github.com/moby/buildkit/frontend/gateway/client"

Index

Types

type BuildFunc

type BuildFunc func(context.Context, Client) (*Result, error)

type BuildOpts

type BuildOpts struct {
	Opts      map[string]string
	SessionID string
	Workers   []WorkerInfo
	Product   string
	LLBCaps   apicaps.CapSet
	Caps      apicaps.CapSet
}

type CacheOptionsEntry

type CacheOptionsEntry struct {
	Type  string
	Attrs map[string]string
}

type Client

type Client interface {
	Solve(ctx context.Context, req SolveRequest) (*Result, error)
	ResolveImageConfig(ctx context.Context, ref string, opt llb.ResolveImageConfigOpt) (digest.Digest, []byte, error)
	BuildOpts() BuildOpts
	Inputs(ctx context.Context) (map[string]llb.State, error)
	NewContainer(ctx context.Context, req NewContainerRequest) (Container, error)
	Warn(ctx context.Context, dgst digest.Digest, msg string, opts WarnOpts) error
}

type Container

type Container interface {
	Start(context.Context, StartRequest) (ContainerProcess, error)
	Release(context.Context) error
}

Container is used to start new processes inside a container and release the container resources when done.

type ContainerProcess

type ContainerProcess interface {
	Wait() error
	Resize(ctx context.Context, size WinSize) error
	Signal(ctx context.Context, sig syscall.Signal) error
}

ContainerProcess represents a process within a container.

type FileRange

type FileRange struct {
	Offset int
	Length int
}

type Mount

type Mount struct {
	Selector  string
	Dest      string
	ResultID  string
	Ref       Reference
	Readonly  bool
	MountType pb.MountType
	CacheOpt  *pb.CacheOpt
	SecretOpt *pb.SecretOpt
	SSHOpt    *pb.SSHOpt
}

Mount allows clients to specify a filesystem mount. A Reference to a previously solved Result is required.

type NewContainerRequest

type NewContainerRequest struct {
	Mounts      []Mount
	NetMode     pb.NetMode
	ExtraHosts  []*pb.HostIP
	Platform    *pb.Platform
	Constraints *pb.WorkerConstraints
}

NewContainerRequest encapsulates the requirements for a client to define a new container, without defining the initial process.

type ReadDirRequest

type ReadDirRequest struct {
	Path           string
	IncludePattern string
}

type ReadRequest

type ReadRequest struct {
	Filename string
	Range    *FileRange
}

type Reference

type Reference interface {
	ToState() (llb.State, error)
	ReadFile(ctx context.Context, req ReadRequest) ([]byte, error)
	StatFile(ctx context.Context, req StatRequest) (*fstypes.Stat, error)
	ReadDir(ctx context.Context, req ReadDirRequest) ([]*fstypes.Stat, error)
}

type Result

type Result struct {
	Ref      Reference
	Refs     map[string]Reference
	Metadata map[string][]byte
	// contains filtered or unexported fields
}

func NewResult

func NewResult() *Result

func (*Result) AddMeta

func (r *Result) AddMeta(k string, v []byte)

func (*Result) AddRef

func (r *Result) AddRef(k string, ref Reference)

func (*Result) SetRef

func (r *Result) SetRef(ref Reference)

func (*Result) SingleRef

func (r *Result) SingleRef() (Reference, error)

type SolveRequest

type SolveRequest struct {
	Evaluate       bool
	Definition     *pb.Definition
	Frontend       string
	FrontendOpt    map[string]string
	FrontendInputs map[string]*pb.Definition
	CacheImports   []CacheOptionsEntry
}

SolveRequest is same as frontend.SolveRequest but avoiding dependency

type StartRequest

type StartRequest struct {
	Args           []string
	Env            []string
	User           string
	Cwd            string
	Tty            bool
	Stdin          io.ReadCloser
	Stdout, Stderr io.WriteCloser
	SecurityMode   pb.SecurityMode
}

StartRequest encapsulates the arguments to define a process within a container.

type StatRequest

type StatRequest struct {
	Path string
}

type WarnOpts

type WarnOpts struct {
	Level      int
	SourceInfo *pb.SourceInfo
	Range      []*pb.Range
	Detail     [][]byte
	URL        string
}

type WinSize

type WinSize struct {
	Rows uint32
	Cols uint32
}

WinSize is same as executor.WinSize, copied here to prevent circular package dependencies.

type WorkerInfo

type WorkerInfo struct {
	ID        string
	Labels    map[string]string
	Platforms []ocispecs.Platform
}

Source Files

client.go result.go

Version
v0.10.0
Published
Mar 9, 2022
Platform
js/wasm
Imports
11 packages
Last checked
12 hours ago

Tools for package owners.