package bake

import "github.com/docker/buildx/bake"

Index

Functions

func IsRemoteURL

func IsRemoteURL(url string) bool

func ParseHCLFile

func ParseHCLFile(dt []byte, fn string) (*hcl.File, bool, error)

func ReadRemoteFiles

func ReadRemoteFiles(ctx context.Context, dis []build.DriverInfo, url string, names []string, pw progress.Writer) ([]File, *Input, error)

func ReadTargets

func ReadTargets(ctx context.Context, files []File, targets, overrides []string, defaults map[string]string) (map[string]*Target, error)

func TargetsToBuildOpt

func TargetsToBuildOpt(m map[string]*Target, inp *Input) (map[string]build.Options, error)

Types

type Config

type Config struct {
	Groups  []*Group  `json:"group" hcl:"group,block"`
	Targets []*Target `json:"target" hcl:"target,block"`
}

func ParseCompose

func ParseCompose(dt []byte) (*Config, error)

func ParseComposeFile

func ParseComposeFile(dt []byte, fn string) (*Config, bool, error)

func ParseFile

func ParseFile(dt []byte, fn string) (*Config, error)

func ParseFiles

func ParseFiles(files []File, defaults map[string]string) (_ *Config, err error)

func (Config) ResolveGroup

func (c Config) ResolveGroup(name string) []string

func (Config) ResolveTarget

func (c Config) ResolveTarget(name string, overrides map[string]*Target) (*Target, error)

type File

type File struct {
	Name string
	Data []byte
}

func ReadLocalFiles

func ReadLocalFiles(names []string) ([]File, error)

type Group

type Group struct {
	Name    string   `json:"-" hcl:"name,label"`
	Targets []string `json:"targets" hcl:"targets"`
}

type Input

type Input struct {
	State *llb.State
	URL   string
}

type Target

type Target struct {
	Name string `json:"-" hcl:"name,label"`

	// Inherits is the only field that cannot be overridden with --set
	Inherits []string `json:"inherits,omitempty" hcl:"inherits,optional"`

	Context          *string           `json:"context,omitempty" hcl:"context,optional"`
	Dockerfile       *string           `json:"dockerfile,omitempty" hcl:"dockerfile,optional"`
	DockerfileInline *string           `json:"dockerfile-inline,omitempty" hcl:"dockerfile-inline,optional"`
	Args             map[string]string `json:"args,omitempty" hcl:"args,optional"`
	Labels           map[string]string `json:"labels,omitempty" hcl:"labels,optional"`
	Tags             []string          `json:"tags,omitempty" hcl:"tags,optional"`
	CacheFrom        []string          `json:"cache-from,omitempty"  hcl:"cache-from,optional"`
	CacheTo          []string          `json:"cache-to,omitempty"  hcl:"cache-to,optional"`
	Target           *string           `json:"target,omitempty" hcl:"target,optional"`
	Secrets          []string          `json:"secret,omitempty" hcl:"secret,optional"`
	SSH              []string          `json:"ssh,omitempty" hcl:"ssh,optional"`
	Platforms        []string          `json:"platforms,omitempty" hcl:"platforms,optional"`
	Outputs          []string          `json:"output,omitempty" hcl:"output,optional"`
	Pull             *bool             `json:"pull,omitempty" hcl:"pull,optional"`
	NoCache          *bool             `json:"no-cache,omitempty" hcl:"no-cache,optional"`
}

func (*Target) Merge

func (t *Target) Merge(t2 *Target)

Source Files

bake.go compose.go hcl.go remote.go

Directories

PathSynopsis
bake/hclparser
Version
v0.6.3
Published
Aug 28, 2021
Platform
js/wasm
Imports
29 packages
Last checked
8 hours ago

Tools for package owners.