Version: v0.9.1 Latest Latest

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

Go to latest
Published: Oct 4, 2021 License: Apache-2.0 Imports: 27 Imported by: 309




View Source
const (
	NetModeSandbox = pb.NetMode_UNSET
	NetModeHost    = pb.NetMode_HOST
	NetModeNone    = pb.NetMode_NONE
View Source
const (
	SecurityModeInsecure = pb.SecurityMode_INSECURE
	SecurityModeSandbox  = pb.SecurityMode_SANDBOX


View Source
var (
	LinuxAmd64   = Platform(specs.Platform{OS: "linux", Architecture: "amd64"})
	LinuxArmhf   = Platform(specs.Platform{OS: "linux", Architecture: "arm", Variant: "v7"})
	LinuxArm     = LinuxArmhf
	LinuxArmel   = Platform(specs.Platform{OS: "linux", Architecture: "arm", Variant: "v6"})
	LinuxArm64   = Platform(specs.Platform{OS: "linux", Architecture: "arm64"})
	LinuxS390x   = Platform(specs.Platform{OS: "linux", Architecture: "s390x"})
	LinuxPpc64le = Platform(specs.Platform{OS: "linux", Architecture: "ppc64le"})
	Darwin       = Platform(specs.Platform{OS: "darwin", Architecture: "amd64"})
	Windows      = Platform(specs.Platform{OS: "windows", Architecture: "amd64"})
View Source
var IgnoreCache = constraintsOptFunc(func(c *Constraints) {
	c.Metadata.IgnoreCache = true
View Source
var MarkImageInternal = imageOptionFunc(func(ii *ImageInfo) {
	ii.RecordType = "internal"
View Source
var SSHOptional = sshOptionFunc(func(si *SSHInfo) {
	si.Optional = true
View Source
var SecretOptional = secretOptionFunc(func(si *SecretInfo) {
	si.Optional = true


func ForceNoOutput added in v0.5.0

func ForceNoOutput(m *mount)

func MarshalConstraints

func MarshalConstraints(base, override *Constraints) (*pb.Op, *pb.OpMetadata)

func Readonly

func Readonly(m *mount)

func WriteTo

func WriteTo(def *Definition, w io.Writer) error


type CacheMountSharingMode

type CacheMountSharingMode int
const (
	CacheMountShared CacheMountSharingMode = iota

type ChownOpt added in v0.5.0

type ChownOpt struct {
	User  *UserOpt
	Group *UserOpt

func (ChownOpt) SetCopyOption added in v0.5.0

func (co ChownOpt) SetCopyOption(mi *CopyInfo)

func (ChownOpt) SetMkdirOption added in v0.5.0

func (co ChownOpt) SetMkdirOption(mi *MkdirInfo)

func (ChownOpt) SetMkfileOption added in v0.5.0

func (co ChownOpt) SetMkfileOption(mi *MkfileInfo)

type ChownOption added in v0.5.0

type ChownOption interface {

func WithUIDGID added in v0.5.0

func WithUIDGID(uid, gid int) ChownOption

func WithUser added in v0.5.0

func WithUser(name string) ChownOption

type Constraints

type Constraints struct {
	Platform          *specs.Platform
	WorkerConstraints []string
	Metadata          pb.OpMetadata
	LocalUniqueID     string
	Caps              *apicaps.CapSet
	SourceLocations   []*SourceLocation

type ConstraintsOpt

type ConstraintsOpt interface {

func LocalUniqueID

func LocalUniqueID(v string) ConstraintsOpt

func Platform

func Platform(p specs.Platform) ConstraintsOpt

func Require

func Require(filters ...string) ConstraintsOpt

func WithCaps

func WithCaps(caps apicaps.CapSet) ConstraintsOpt

WithCaps exposes supported LLB caps to the marshaler

func WithCustomName

func WithCustomName(name string) ConstraintsOpt

func WithCustomNamef added in v0.4.0

func WithCustomNamef(name string, a ...interface{}) ConstraintsOpt

func WithDescription

func WithDescription(m map[string]string) ConstraintsOpt

func WithExportCache

func WithExportCache() ConstraintsOpt

WithExportCache forces results for this vertex to be exported with the cache

func WithoutDefaultExportCache

func WithoutDefaultExportCache() ConstraintsOpt

WithoutDefaultExportCache resets the cache export for the vertex to use the default defined by the build configuration.

func WithoutExportCache

func WithoutExportCache() ConstraintsOpt

WithoutExportCache sets results for this vertex to be not exported with the cache

type CopyInfo added in v0.5.0

type CopyInfo struct {
	Mode                *os.FileMode
	FollowSymlinks      bool
	CopyDirContentsOnly bool
	IncludePatterns     []string
	ExcludePatterns     []string
	AttemptUnpack       bool
	CreateDestPath      bool
	AllowWildcard       bool
	AllowEmptyWildcard  bool
	ChownOpt            *ChownOpt
	CreatedTime         *time.Time

func (*CopyInfo) SetCopyOption added in v0.5.0

func (mi *CopyInfo) SetCopyOption(mi2 *CopyInfo)

type CopyInput added in v0.5.0

type CopyInput interface {
	// contains filtered or unexported methods

CopyInput is either llb.State or *FileActionWithState

type CopyOption added in v0.5.0

type CopyOption interface {

type CreatedTime added in v0.5.0

type CreatedTime time.Time

func WithCreatedTime added in v0.5.0

func WithCreatedTime(t time.Time) CreatedTime

func (CreatedTime) SetCopyOption added in v0.5.0

func (c CreatedTime) SetCopyOption(mi *CopyInfo)

func (CreatedTime) SetMkdirOption added in v0.5.0

func (c CreatedTime) SetMkdirOption(mi *MkdirInfo)

func (CreatedTime) SetMkfileOption added in v0.5.0

func (c CreatedTime) SetMkfileOption(mi *MkfileInfo)

type Definition

type Definition struct {
	Def      [][]byte
	Metadata map[digest.Digest]pb.OpMetadata
	Source   *pb.Source

Definition is the LLB definition structure with per-vertex metadata entries Corresponds to the Definition structure defined in solver/pb.Definition.

func ReadFrom

func ReadFrom(r io.Reader) (*Definition, error)

func (*Definition) FromPB

func (def *Definition) FromPB(x *pb.Definition)

func (*Definition) ToPB

func (def *Definition) ToPB() *pb.Definition

type DefinitionOp added in v0.7.0

type DefinitionOp struct {
	// contains filtered or unexported fields

DefinitionOp implements llb.Vertex using a marshalled definition.

For example, after marshalling a LLB state and sending over the wire, the LLB state can be reconstructed from the definition.

func NewDefinitionOp added in v0.7.0

func NewDefinitionOp(def *pb.Definition) (*DefinitionOp, error)

NewDefinitionOp returns a new operation from a marshalled definition.

func (*DefinitionOp) Inputs added in v0.7.0

func (d *DefinitionOp) Inputs() []Output

func (*DefinitionOp) Marshal added in v0.7.0

func (*DefinitionOp) Output added in v0.7.0

func (d *DefinitionOp) Output() Output

func (*DefinitionOp) ToInput added in v0.7.0

func (d *DefinitionOp) ToInput(ctx context.Context, c *Constraints) (*pb.Input, error)

func (*DefinitionOp) Validate added in v0.7.0

func (d *DefinitionOp) Validate(context.Context, *Constraints) error

func (*DefinitionOp) Vertex added in v0.7.0

type DiffType added in v0.9.0

type DiffType string
const (
	// DiffNone will do no file comparisons, all files in the Local source will
	// be retransmitted.
	DiffNone DiffType = pb.AttrLocalDifferNone
	// DiffMetadata will compare file metadata (size, modified time, mode, owner,
	// group, device and link name) to determine if the files in the Local source need
	// to be retransmitted.  This is the default behavior.
	DiffMetadata DiffType = pb.AttrLocalDifferMetadata

type DifferInfo added in v0.9.0

type DifferInfo struct {
	Type     DiffType
	Required bool

type EnvList

type EnvList []KeyValue

func (EnvList) AddOrReplace

func (e EnvList) AddOrReplace(k, v string) EnvList

func (EnvList) Delete

func (e EnvList) Delete(k string) EnvList

func (EnvList) Get

func (e EnvList) Get(k string) (string, bool)

func (EnvList) Index

func (e EnvList) Index(k string) (int, bool)

func (EnvList) SetDefault

func (e EnvList) SetDefault(k, v string) EnvList

func (EnvList) ToArray

func (e EnvList) ToArray() []string

type ExecInfo

type ExecInfo struct {
	State          State
	Mounts         []MountInfo
	ReadonlyRootFS bool
	ProxyEnv       *ProxyEnv
	Secrets        []SecretInfo
	SSH            []SSHInfo
	// contains filtered or unexported fields

type ExecOp

type ExecOp struct {
	// contains filtered or unexported fields

func NewExecOp

func NewExecOp(base State, proxyEnv *ProxyEnv, readOnly bool, c Constraints) *ExecOp

func (*ExecOp) AddMount

func (e *ExecOp) AddMount(target string, source Output, opt ...MountOption) Output

func (*ExecOp) GetMount

func (e *ExecOp) GetMount(target string) Output

func (*ExecOp) Inputs

func (e *ExecOp) Inputs() (inputs []Output)

func (*ExecOp) Marshal

func (*ExecOp) Output

func (e *ExecOp) Output() Output

func (*ExecOp) Validate

func (e *ExecOp) Validate(ctx context.Context, c *Constraints) error

type ExecState

type ExecState struct {
	// contains filtered or unexported fields

func (ExecState) AddMount

func (e ExecState) AddMount(target string, source State, opt ...MountOption) State

func (ExecState) GetMount

func (e ExecState) GetMount(target string) State

func (ExecState) Root

func (e ExecState) Root() State

type FileAction added in v0.5.0

type FileAction struct {
	// contains filtered or unexported fields

func Copy added in v0.5.0

func Copy(input CopyInput, src, dest string, opts ...CopyOption) *FileAction

func Mkdir added in v0.5.0

func Mkdir(p string, m os.FileMode, opt ...MkdirOption) *FileAction

func Mkfile added in v0.5.0

func Mkfile(p string, m os.FileMode, dt []byte, opts ...MkfileOption) *FileAction

func Rm added in v0.5.0

func Rm(p string, opts ...RmOption) *FileAction

func (*FileAction) Copy added in v0.5.0

func (fa *FileAction) Copy(input CopyInput, src, dest string, opt ...CopyOption) *FileAction

func (*FileAction) Mkdir added in v0.5.0

func (fa *FileAction) Mkdir(p string, m os.FileMode, opt ...MkdirOption) *FileAction

func (*FileAction) Mkfile added in v0.5.0

func (fa *FileAction) Mkfile(p string, m os.FileMode, dt []byte, opt ...MkfileOption) *FileAction

func (*FileAction) Rm added in v0.5.0

func (fa *FileAction) Rm(p string, opt ...RmOption) *FileAction

func (*FileAction) WithState added in v0.5.0

func (fa *FileAction) WithState(s State) CopyInput

type FileOp added in v0.5.0

type FileOp struct {
	// contains filtered or unexported fields

func NewFileOp added in v0.5.0

func NewFileOp(s State, action *FileAction, c Constraints) *FileOp

func (*FileOp) Inputs added in v0.5.0

func (f *FileOp) Inputs() (inputs []Output)

func (*FileOp) Marshal added in v0.5.0

func (*FileOp) Output added in v0.5.0

func (f *FileOp) Output() Output

func (*FileOp) Validate added in v0.5.0

func (f *FileOp) Validate(context.Context, *Constraints) error

type GitInfo

type GitInfo struct {
	KeepGitDir       bool
	AuthTokenSecret  string
	AuthHeaderSecret string

	KnownSSHHosts string
	MountSSHSock  string
	// contains filtered or unexported fields

type GitOption

type GitOption interface {

func AuthHeaderSecret added in v0.8.0

func AuthHeaderSecret(v string) GitOption

func AuthTokenSecret added in v0.8.0

func AuthTokenSecret(v string) GitOption

func KeepGitDir

func KeepGitDir() GitOption

func KnownSSHHosts added in v0.8.0

func KnownSSHHosts(key string) GitOption

func MountSSHSock added in v0.8.0

func MountSSHSock(sshID string) GitOption

type HTTPInfo

type HTTPInfo struct {
	Checksum digest.Digest
	Filename string
	Perm     int
	UID      int
	GID      int
	// contains filtered or unexported fields

type HTTPOption

type HTTPOption interface {

func Checksum

func Checksum(dgst digest.Digest) HTTPOption

func Chmod

func Chmod(perm os.FileMode) HTTPOption

func Chown

func Chown(uid, gid int) HTTPOption

func Filename

func Filename(name string) HTTPOption

type HostIP

type HostIP struct {
	Host string
	IP   net.IP

type ImageInfo

type ImageInfo struct {
	RecordType string
	// contains filtered or unexported fields

type ImageMetaResolver

type ImageMetaResolver interface {
	ResolveImageConfig(ctx context.Context, ref string, opt ResolveImageConfigOpt) (digest.Digest, []byte, error)

ImageMetaResolver can resolve image config metadata from a reference

type ImageOption

type ImageOption interface {

func ResolveDigest added in v0.8.0

func ResolveDigest(v bool) ImageOption

ResolveDigest uses the meta resolver to update the ref of image with full digest before marshaling. This makes image ref immutable and is recommended if you want to make sure meta resolver data matches the image used during the build.

func WithMetaResolver

func WithMetaResolver(mr ImageMetaResolver) ImageOption

WithMetaResolver adds a metadata resolver to an image

type KeyValue

type KeyValue struct {
	// contains filtered or unexported fields

type LocalInfo

type LocalInfo struct {
	SessionID       string
	IncludePatterns string
	ExcludePatterns string
	FollowPaths     string
	SharedKeyHint   string
	Differ          DifferInfo
	// contains filtered or unexported fields

type LocalOption

type LocalOption interface {

func Differ added in v0.9.0

func Differ(t DiffType, required bool) LocalOption

func ExcludePatterns

func ExcludePatterns(p []string) LocalOption

func FollowPaths

func FollowPaths(p []string) LocalOption

func IncludePatterns

func IncludePatterns(p []string) LocalOption

func SessionID

func SessionID(id string) LocalOption

func SharedKeyHint

func SharedKeyHint(h string) LocalOption

type MarshalCache

type MarshalCache struct {
	// contains filtered or unexported fields

func (*MarshalCache) Cached

func (mc *MarshalCache) Cached(c *Constraints) bool

func (*MarshalCache) Load

func (*MarshalCache) Store

func (mc *MarshalCache) Store(dt []byte, md *pb.OpMetadata, srcs []*SourceLocation, c *Constraints)

type MkdirInfo added in v0.5.0

type MkdirInfo struct {
	MakeParents bool
	ChownOpt    *ChownOpt
	CreatedTime *time.Time

func (*MkdirInfo) SetMkdirOption added in v0.5.0

func (mi *MkdirInfo) SetMkdirOption(mi2 *MkdirInfo)

type MkdirOption added in v0.5.0

type MkdirOption interface {

func WithParents added in v0.5.0

func WithParents(b bool) MkdirOption

type MkfileInfo added in v0.5.0

type MkfileInfo struct {
	ChownOpt    *ChownOpt
	CreatedTime *time.Time

func (*MkfileInfo) SetMkfileOption added in v0.5.0

func (mi *MkfileInfo) SetMkfileOption(mi2 *MkfileInfo)

type MkfileOption added in v0.5.0

type MkfileOption interface {

type MountInfo

type MountInfo struct {
	Target string
	Source Output
	Opts   []MountOption

type MountOption

type MountOption func(*mount)

func AsPersistentCacheDir

func AsPersistentCacheDir(id string, sharing CacheMountSharingMode) MountOption

func SourcePath

func SourcePath(src string) MountOption

func Tmpfs

func Tmpfs() MountOption

type Output

type Output interface {
	ToInput(context.Context, *Constraints) (*pb.Input, error)
	Vertex(context.Context, *Constraints) Vertex

type ProxyEnv

type ProxyEnv struct {
	HTTPProxy  string
	HTTPSProxy string
	FTPProxy   string
	NoProxy    string
	AllProxy   string

type ResolveImageConfigOpt added in v0.7.0

type ResolveImageConfigOpt struct {
	Platform    *specs.Platform
	ResolveMode string
	LogName     string

type ResolveMode

type ResolveMode int
const (
	ResolveModeDefault ResolveMode = iota

func (ResolveMode) SetImageOption

func (r ResolveMode) SetImageOption(ii *ImageInfo)

func (ResolveMode) String

func (r ResolveMode) String() string

type RmInfo added in v0.5.0

type RmInfo struct {
	AllowNotFound bool
	AllowWildcard bool

func (*RmInfo) SetRmOption added in v0.5.0

func (mi *RmInfo) SetRmOption(mi2 *RmInfo)

type RmOption added in v0.5.0

type RmOption interface {

func WithAllowNotFound added in v0.5.0

func WithAllowNotFound(b bool) RmOption

func WithAllowWildcard added in v0.5.0

func WithAllowWildcard(b bool) RmOption

type RunOption

type RunOption interface {
	SetRunOption(es *ExecInfo)

func AddExtraHost

func AddExtraHost(host string, ip net.IP) RunOption

func AddMount

func AddMount(dest string, mountState State, opts ...MountOption) RunOption

func AddSSHSocket

func AddSSHSocket(opts ...SSHOption) RunOption

func AddSecret

func AddSecret(dest string, opts ...SecretOption) RunOption

func Args

func Args(a []string) RunOption

func ReadonlyRootFS

func ReadonlyRootFS() RunOption

func Shlex

func Shlex(str string) RunOption

func Shlexf

func Shlexf(str string, v ...interface{}) RunOption

func With

func With(so ...StateOption) RunOption

func WithProxy

func WithProxy(ps ProxyEnv) RunOption

type SSHInfo

type SSHInfo struct {
	ID       string
	Target   string
	Mode     int
	UID      int
	GID      int
	Optional bool

type SSHOption

type SSHOption interface {

func SSHID

func SSHID(id string) SSHOption

func SSHSocketOpt

func SSHSocketOpt(target string, uid, gid, mode int) SSHOption

func SSHSocketTarget

func SSHSocketTarget(target string) SSHOption

type SecretInfo

type SecretInfo struct {
	ID       string
	Target   string
	Mode     int
	UID      int
	GID      int
	Optional bool

type SecretOption

type SecretOption interface {

func SecretFileOpt

func SecretFileOpt(uid, gid, mode int) SecretOption

func SecretID

func SecretID(id string) SecretOption

type SourceLocation added in v0.8.0

type SourceLocation struct {
	SourceMap *SourceMap
	Ranges    []*pb.Range

type SourceMap added in v0.8.0

type SourceMap struct {
	State      *State
	Definition *Definition
	Filename   string
	Data       []byte

func NewSourceMap added in v0.8.0

func NewSourceMap(st *State, filename string, dt []byte) *SourceMap

func (*SourceMap) Location added in v0.8.0

func (s *SourceMap) Location(r []*pb.Range) ConstraintsOpt

type SourceOp

type SourceOp struct {
	// contains filtered or unexported fields

func NewSource

func NewSource(id string, attrs map[string]string, c Constraints) *SourceOp

func (*SourceOp) Inputs

func (s *SourceOp) Inputs() []Output

func (*SourceOp) Marshal

func (s *SourceOp) Marshal(ctx context.Context, constraints *Constraints) (digest.Digest, []byte, *pb.OpMetadata, []*SourceLocation, error)

func (*SourceOp) Output

func (s *SourceOp) Output() Output

func (*SourceOp) Validate

func (s *SourceOp) Validate(ctx context.Context, c *Constraints) error

type State

type State struct {
	// contains filtered or unexported fields

func Git

func Git(remote, ref string, opts ...GitOption) State

func HTTP

func HTTP(url string, opts ...HTTPOption) State

func Image

func Image(ref string, opts ...ImageOption) State

func Local

func Local(name string, opts ...LocalOption) State

func NewState

func NewState(o Output) State

func Scratch

func Scratch() State

func (State) AddEnv

func (s State) AddEnv(key, value string) State

func (State) AddEnvf

func (s State) AddEnvf(key, value string, v ...interface{}) State

func (State) AddExtraHost

func (s State) AddExtraHost(host string, ip net.IP) State

func (State) Async added in v0.8.0

func (s State) Async(f func(context.Context, State, *Constraints) (State, error)) State

func (State) Dir

func (s State) Dir(str string) State

func (State) Dirf

func (s State) Dirf(str string, v ...interface{}) State

func (State) Env

func (s State) Env(ctx context.Context, co ...ConstraintsOpt) ([]string, error)

func (State) File added in v0.5.0

func (s State) File(a *FileAction, opts ...ConstraintsOpt) State

func (State) GetArgs

func (s State) GetArgs(ctx context.Context, co ...ConstraintsOpt) ([]string, error)

func (State) GetDir

func (s State) GetDir(ctx context.Context, co ...ConstraintsOpt) (string, error)

func (State) GetEnv

func (s State) GetEnv(ctx context.Context, key string, co ...ConstraintsOpt) (string, bool, error)

func (State) GetHostname added in v0.8.0

func (s State) GetHostname(ctx context.Context, co ...ConstraintsOpt) (string, error)

func (State) GetNetwork

func (s State) GetNetwork(ctx context.Context, co ...ConstraintsOpt) (pb.NetMode, error)

func (State) GetPlatform

func (s State) GetPlatform(ctx context.Context, co ...ConstraintsOpt) (*specs.Platform, error)

func (State) GetSecurity added in v0.5.0

func (s State) GetSecurity(ctx context.Context, co ...ConstraintsOpt) (pb.SecurityMode, error)

func (State) Hostname added in v0.8.0

func (s State) Hostname(v string) State

func (State) Marshal

func (s State) Marshal(ctx context.Context, co ...ConstraintsOpt) (*Definition, error)

func (State) Network

func (s State) Network(n pb.NetMode) State

func (State) Output

func (s State) Output() Output

func (State) Platform

func (s State) Platform(p specs.Platform) State

func (State) Reset

func (s State) Reset(s2 State) State

func (State) Run

func (s State) Run(ro ...RunOption) ExecState

func (State) Security added in v0.5.0

func (s State) Security(n pb.SecurityMode) State

func (State) SetMarshalDefaults

func (s State) SetMarshalDefaults(co ...ConstraintsOpt) State

func (State) User

func (s State) User(v string) State

func (State) Validate

func (s State) Validate(ctx context.Context, c *Constraints) error

func (State) Value

func (s State) Value(ctx context.Context, k interface{}, co ...ConstraintsOpt) (interface{}, error)

func (State) With

func (s State) With(so ...StateOption) State

func (State) WithImageConfig added in v0.3.2

func (s State) WithImageConfig(c []byte) (State, error)

func (State) WithOutput

func (s State) WithOutput(o Output) State

func (State) WithValue

func (s State) WithValue(k, v interface{}) State

type StateOption

type StateOption func(State) State

func AddEnv

func AddEnv(key, value string) StateOption

func AddEnvf

func AddEnvf(key, value string, v ...interface{}) StateOption

func Dir

func Dir(str string) StateOption

func Dirf

func Dirf(str string, v ...interface{}) StateOption

func Hostname added in v0.8.0

func Hostname(str string) StateOption

func Network

func Network(v pb.NetMode) StateOption

func Reset

func Reset(other State) StateOption

func Security added in v0.5.0

func Security(v pb.SecurityMode) StateOption

func User

func User(str string) StateOption

func (StateOption) SetRunOption added in v0.8.0

func (fn StateOption) SetRunOption(ei *ExecInfo)

type UserOpt added in v0.5.0

type UserOpt struct {
	UID  int
	Name string

type Vertex

type Vertex interface {
	Validate(context.Context, *Constraints) error
	Marshal(context.Context, *Constraints) (digest.Digest, []byte, *pb.OpMetadata, []*SourceLocation, error)
	Output() Output
	Inputs() []Output


Path Synopsis

Jump to

Keyboard shortcuts

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