package bake

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

Index

Functions

func IsRemoteURL

func IsRemoteURL(url string) bool

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) (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 {
	Variables []*Variable `json:"-" hcl:"variable,block"`
	Groups    []*Group    `json:"group" hcl:"group,block"`
	Targets   []*Target   `json:"target" hcl:"target,block"`
	Remain    hcl.Body    `json:"-" hcl:",remain"`
}

func ParseCompose

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

func ParseFile

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

func ParseHCL

func ParseHCL(dt []byte, fn 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"`
}

type Variable

type Variable struct {
	Name    string `json:"-" hcl:"name,label"`
	Default string `json:"default,omitempty" hcl:"default,optional"`
}

Source Files

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

Version
v0.5.1
Published
Dec 15, 2020
Platform
js/wasm
Imports
33 packages
Last checked
7 hours ago

Tools for package owners.