mirror of https://github.com/docker/buildx.git
controller: return solve response through api
Now clients can access the result of the solve, specifically the image id output. This is a useful refactor, as well as being required if we want to allow bake to invoke through the controller api. This also allows us to remove the quiet option from the API, since we can compute the required progress type outside of the controller, and can print the image id from the result of the solve. As a follow-up, we should also be able to remove the image id file output from the controller api, now that the client has access to it. Signed-off-by: Justin Chadwell <me@jedevc.com>
This commit is contained in:
parent
90d7fb5e77
commit
5c31d855fd
|
@ -1260,7 +1260,7 @@ func BuildWithResultHandler(ctx context.Context, nodes []builder.Node, opt map[s
|
|||
respMu.Lock()
|
||||
resp[k] = &client.SolveResponse{
|
||||
ExporterResponse: map[string]string{
|
||||
"containerimage.digest": desc.Digest.String(),
|
||||
exptypes.ExporterImageDigestKey: desc.Digest.String(),
|
||||
},
|
||||
}
|
||||
respMu.Unlock()
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"encoding/base64"
|
||||
"encoding/csv"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"os"
|
||||
"runtime"
|
||||
|
@ -21,6 +22,7 @@ import (
|
|||
"github.com/docker/buildx/store/storeutil"
|
||||
"github.com/docker/buildx/util/buildflags"
|
||||
"github.com/docker/buildx/util/ioset"
|
||||
"github.com/docker/buildx/util/progress"
|
||||
"github.com/docker/buildx/util/tracing"
|
||||
"github.com/docker/cli-docs-tool/annotation"
|
||||
"github.com/docker/cli/cli"
|
||||
|
@ -54,7 +56,6 @@ type buildOptions struct {
|
|||
outputs []string
|
||||
platforms []string
|
||||
printFunc string
|
||||
quiet bool
|
||||
secrets []string
|
||||
shmSize dockeropts.MemBytes
|
||||
ssh []string
|
||||
|
@ -62,8 +63,10 @@ type buildOptions struct {
|
|||
target string
|
||||
ulimits *dockeropts.UlimitOpt
|
||||
|
||||
invoke string
|
||||
invoke string
|
||||
|
||||
progress string
|
||||
quiet bool
|
||||
|
||||
controllerapi.CommonOptions
|
||||
control.ControlOptions
|
||||
|
@ -85,7 +88,6 @@ func (o *buildOptions) toControllerOptions() (controllerapi.BuildOptions, error)
|
|||
NoCacheFilter: o.noCacheFilter,
|
||||
Platforms: o.platforms,
|
||||
PrintFunc: o.printFunc,
|
||||
Quiet: o.quiet,
|
||||
ShmSize: int64(o.shmSize),
|
||||
Tags: o.tags,
|
||||
Target: o.target,
|
||||
|
@ -124,6 +126,22 @@ func (o *buildOptions) toControllerOptions() (controllerapi.BuildOptions, error)
|
|||
return opts, nil
|
||||
}
|
||||
|
||||
func (o *buildOptions) toProgress() (string, error) {
|
||||
switch o.progress {
|
||||
case progress.PrinterModeAuto, progress.PrinterModeTty, progress.PrinterModePlain, progress.PrinterModeQuiet:
|
||||
default:
|
||||
return "", errors.Errorf("progress=%s is not a valid progress option", o.progress)
|
||||
}
|
||||
|
||||
if o.quiet {
|
||||
if o.progress != progress.PrinterModeAuto && o.progress != progress.PrinterModeQuiet {
|
||||
return "", errors.Errorf("progress=%s and quiet cannot be used together", o.progress)
|
||||
}
|
||||
return progress.PrinterModeQuiet, nil
|
||||
}
|
||||
return o.progress, nil
|
||||
}
|
||||
|
||||
func runBuild(dockerCli command.Cli, in buildOptions) error {
|
||||
ctx := appcontext.Context()
|
||||
|
||||
|
@ -139,8 +157,18 @@ func runBuild(dockerCli command.Cli, in buildOptions) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = cbuild.RunBuild(ctx, dockerCli, opts, os.Stdin, in.progress, nil)
|
||||
return err
|
||||
progress, err := in.toProgress()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
resp, _, err := cbuild.RunBuild(ctx, dockerCli, opts, os.Stdin, progress, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if in.quiet {
|
||||
fmt.Println(resp.ExporterResponse[exptypes.ExporterImageDigestKey])
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func buildCmd(dockerCli command.Cli, rootOpts *rootOptions) *cobra.Command {
|
||||
|
@ -403,11 +431,6 @@ func updateLastActivity(dockerCli command.Cli, ng *store.NodeGroup) error {
|
|||
func launchControllerAndRunBuild(dockerCli command.Cli, options buildOptions) error {
|
||||
ctx := context.TODO()
|
||||
|
||||
if options.quiet && options.progress != "auto" && options.progress != "quiet" {
|
||||
return errors.Errorf("progress=%s and quiet cannot be used together", options.progress)
|
||||
} else if options.quiet {
|
||||
options.progress = "quiet"
|
||||
}
|
||||
if options.invoke != "" && (options.dockerfileName == "-" || options.contextPath == "-") {
|
||||
// stdin must be usable for monitor
|
||||
return errors.Errorf("Dockerfile or context from stdin is not supported with invoke")
|
||||
|
@ -440,12 +463,16 @@ func launchControllerAndRunBuild(dockerCli command.Cli, options buildOptions) er
|
|||
})
|
||||
f.SetReader(os.Stdin)
|
||||
|
||||
// Start build
|
||||
opts, err := options.toControllerOptions()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
ref, err := c.Build(ctx, opts, pr, os.Stdout, os.Stderr, options.progress)
|
||||
progress, err := options.toProgress()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// Start build
|
||||
ref, resp, err := c.Build(ctx, opts, pr, os.Stdout, os.Stderr, progress)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "failed to build") // TODO: allow invoke even on error
|
||||
}
|
||||
|
@ -456,6 +483,10 @@ func launchControllerAndRunBuild(dockerCli command.Cli, options buildOptions) er
|
|||
logrus.Debug("failed to close stdin pipe reader")
|
||||
}
|
||||
|
||||
if options.quiet {
|
||||
fmt.Println(resp.ExporterResponse[exptypes.ExporterImageDigestKey])
|
||||
}
|
||||
|
||||
// post-build operations
|
||||
if options.invoke != "" {
|
||||
pr2, pw2 := io.Pipe()
|
||||
|
|
|
@ -41,15 +41,9 @@ import (
|
|||
|
||||
const defaultTargetName = "default"
|
||||
|
||||
func RunBuild(ctx context.Context, dockerCli command.Cli, in controllerapi.BuildOptions, inStream io.Reader, progressMode string, statusChan chan *client.SolveStatus) (res *build.ResultContext, err error) {
|
||||
func RunBuild(ctx context.Context, dockerCli command.Cli, in controllerapi.BuildOptions, inStream io.Reader, progressMode string, statusChan chan *client.SolveStatus) (*client.SolveResponse, *build.ResultContext, error) {
|
||||
if in.Opts.NoCache && len(in.NoCacheFilter) > 0 {
|
||||
return nil, errors.Errorf("--no-cache and --no-cache-filter cannot currently be used together")
|
||||
}
|
||||
|
||||
if in.Quiet && progressMode != progress.PrinterModeAuto && progressMode != progress.PrinterModeQuiet {
|
||||
return nil, errors.Errorf("progress=%s and quiet cannot be used together", progressMode)
|
||||
} else if in.Quiet {
|
||||
progressMode = "quiet"
|
||||
return nil, nil, errors.Errorf("--no-cache and --no-cache-filter cannot currently be used together")
|
||||
}
|
||||
|
||||
contexts := map[string]build.NamedContext{}
|
||||
|
@ -59,7 +53,7 @@ func RunBuild(ctx context.Context, dockerCli command.Cli, in controllerapi.Build
|
|||
|
||||
printFunc, err := parsePrintFunc(in.PrintFunc)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
opts := build.Options{
|
||||
|
@ -86,7 +80,7 @@ func RunBuild(ctx context.Context, dockerCli command.Cli, in controllerapi.Build
|
|||
|
||||
platforms, err := platformutil.Parse(in.Platforms)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
opts.Platforms = platforms
|
||||
|
||||
|
@ -95,7 +89,7 @@ func RunBuild(ctx context.Context, dockerCli command.Cli, in controllerapi.Build
|
|||
|
||||
secrets, err := controllerapi.CreateSecrets(in.Secrets)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
opts.Session = append(opts.Session, secrets)
|
||||
|
||||
|
@ -105,17 +99,17 @@ func RunBuild(ctx context.Context, dockerCli command.Cli, in controllerapi.Build
|
|||
}
|
||||
ssh, err := controllerapi.CreateSSH(sshSpecs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
opts.Session = append(opts.Session, ssh)
|
||||
|
||||
outputs, err := controllerapi.CreateExports(in.Exports)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
if in.Opts.ExportPush {
|
||||
if in.Opts.ExportLoad {
|
||||
return nil, errors.Errorf("push and load may not be set together at the moment")
|
||||
return nil, nil, errors.Errorf("push and load may not be set together at the moment")
|
||||
}
|
||||
if len(outputs) == 0 {
|
||||
outputs = []client.ExportEntry{{
|
||||
|
@ -129,7 +123,7 @@ func RunBuild(ctx context.Context, dockerCli command.Cli, in controllerapi.Build
|
|||
case "image":
|
||||
outputs[0].Attrs["push"] = "true"
|
||||
default:
|
||||
return nil, errors.Errorf("push and %q output can't be used together", outputs[0].Type)
|
||||
return nil, nil, errors.Errorf("push and %q output can't be used together", outputs[0].Type)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -143,7 +137,7 @@ func RunBuild(ctx context.Context, dockerCli command.Cli, in controllerapi.Build
|
|||
switch outputs[0].Type {
|
||||
case "docker":
|
||||
default:
|
||||
return nil, errors.Errorf("load and %q output can't be used together", outputs[0].Type)
|
||||
return nil, nil, errors.Errorf("load and %q output can't be used together", outputs[0].Type)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -158,7 +152,7 @@ func RunBuild(ctx context.Context, dockerCli command.Cli, in controllerapi.Build
|
|||
}
|
||||
opts.Attests, err = buildflags.ParseAttests(inAttests)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
opts.CacheFrom = controllerapi.CreateCaches(in.CacheFrom)
|
||||
|
@ -166,7 +160,7 @@ func RunBuild(ctx context.Context, dockerCli command.Cli, in controllerapi.Build
|
|||
|
||||
allow, err := buildflags.ParseEntitlements(in.Allow)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
opts.Allow = allow
|
||||
|
||||
|
@ -181,29 +175,25 @@ func RunBuild(ctx context.Context, dockerCli command.Cli, in controllerapi.Build
|
|||
builder.WithContextPathHash(contextPathHash),
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
if err = updateLastActivity(dockerCli, b.NodeGroup); err != nil {
|
||||
return nil, errors.Wrapf(err, "failed to update builder last activity time")
|
||||
return nil, nil, errors.Wrapf(err, "failed to update builder last activity time")
|
||||
}
|
||||
nodes, err := b.LoadNodes(ctx, false)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
imageID, res, err := buildTargets(ctx, dockerCli, b.NodeGroup, nodes, map[string]build.Options{defaultTargetName: opts}, progressMode, in.Opts.MetadataFile, statusChan)
|
||||
resp, res, err := buildTargets(ctx, dockerCli, b.NodeGroup, nodes, map[string]build.Options{defaultTargetName: opts}, progressMode, in.Opts.MetadataFile, statusChan)
|
||||
err = wrapBuildError(err, false)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
if in.Quiet {
|
||||
fmt.Println(imageID)
|
||||
}
|
||||
return res, nil
|
||||
return resp, res, nil
|
||||
}
|
||||
|
||||
func buildTargets(ctx context.Context, dockerCli command.Cli, ng *store.NodeGroup, nodes []builder.Node, opts map[string]build.Options, progressMode string, metadataFile string, statusChan chan *client.SolveStatus) (imageID string, res *build.ResultContext, err error) {
|
||||
func buildTargets(ctx context.Context, dockerCli command.Cli, ng *store.NodeGroup, nodes []builder.Node, opts map[string]build.Options, progressMode string, metadataFile string, statusChan chan *client.SolveStatus) (*client.SolveResponse, *build.ResultContext, error) {
|
||||
ctx2, cancel := context.WithCancel(context.TODO())
|
||||
defer cancel()
|
||||
|
||||
|
@ -212,9 +202,10 @@ func buildTargets(ctx context.Context, dockerCli command.Cli, ng *store.NodeGrou
|
|||
fmt.Sprintf("%s:%s", ng.Driver, ng.Name),
|
||||
))
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
var res *build.ResultContext
|
||||
var mu sync.Mutex
|
||||
var idx int
|
||||
resp, err := build.BuildWithResultHandler(ctx, nodes, opts, dockerutil.NewClient(dockerCli), confutil.ConfigDir(dockerCli), progress.Tee(printer, statusChan), func(driverIndex int, gotRes *build.ResultContext) {
|
||||
|
@ -229,12 +220,12 @@ func buildTargets(ctx context.Context, dockerCli command.Cli, ng *store.NodeGrou
|
|||
err = err1
|
||||
}
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
if len(metadataFile) > 0 && resp != nil {
|
||||
if err := writeMetadataFile(metadataFile, decodeExporterResponse(resp[defaultTargetName].ExporterResponse)); err != nil {
|
||||
return "", nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -243,12 +234,12 @@ func buildTargets(ctx context.Context, dockerCli command.Cli, ng *store.NodeGrou
|
|||
for k := range resp {
|
||||
if opts[k].PrintFunc != nil {
|
||||
if err := printResult(opts[k].PrintFunc, resp[k].ExporterResponse); err != nil {
|
||||
return "", nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return resp[defaultTargetName].ExporterResponse["containerimage.digest"], res, err
|
||||
return resp[defaultTargetName], res, err
|
||||
}
|
||||
|
||||
func printWarnings(w io.Writer, warnings []client.VertexWarning, mode string) {
|
||||
|
|
|
@ -6,14 +6,15 @@ import (
|
|||
|
||||
"github.com/containerd/console"
|
||||
controllerapi "github.com/docker/buildx/controller/pb"
|
||||
"github.com/moby/buildkit/client"
|
||||
)
|
||||
|
||||
type BuildxController interface {
|
||||
Invoke(ctx context.Context, ref string, options controllerapi.ContainerConfig, ioIn io.ReadCloser, ioOut io.WriteCloser, ioErr io.WriteCloser) error
|
||||
Build(ctx context.Context, options controllerapi.BuildOptions, in io.ReadCloser, w io.Writer, out console.File, progressMode string) (ref string, err error)
|
||||
Build(ctx context.Context, options controllerapi.BuildOptions, in io.ReadCloser, w io.Writer, out console.File, progressMode string) (ref string, resp *client.SolveResponse, err error)
|
||||
Invoke(ctx context.Context, ref string, options controllerapi.ContainerConfig, ioIn io.ReadCloser, ioOut io.WriteCloser, ioErr io.WriteCloser) (err error)
|
||||
Kill(ctx context.Context) error
|
||||
Close() error
|
||||
List(ctx context.Context) (res []string, _ error)
|
||||
List(ctx context.Context) (refs []string, _ error)
|
||||
Disconnect(ctx context.Context, ref string) error
|
||||
}
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ import (
|
|||
"github.com/docker/buildx/controller/control"
|
||||
controllerapi "github.com/docker/buildx/controller/pb"
|
||||
"github.com/docker/cli/cli/command"
|
||||
"github.com/moby/buildkit/client"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
|
@ -26,6 +27,15 @@ type localController struct {
|
|||
resultCtx *build.ResultContext
|
||||
}
|
||||
|
||||
func (b *localController) Build(ctx context.Context, options controllerapi.BuildOptions, in io.ReadCloser, w io.Writer, out console.File, progressMode string) (string, *client.SolveResponse, error) {
|
||||
resp, res, err := cbuild.RunBuild(ctx, b.dockerCli, options, in, progressMode, nil)
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
b.resultCtx = res
|
||||
return b.ref, resp, nil
|
||||
}
|
||||
|
||||
func (b *localController) Invoke(ctx context.Context, ref string, cfg controllerapi.ContainerConfig, ioIn io.ReadCloser, ioOut io.WriteCloser, ioErr io.WriteCloser) error {
|
||||
if ref != b.ref {
|
||||
return errors.Errorf("unknown ref %q", ref)
|
||||
|
@ -52,15 +62,6 @@ func (b *localController) Invoke(ctx context.Context, ref string, cfg controller
|
|||
return build.Invoke(ctx, ccfg)
|
||||
}
|
||||
|
||||
func (b *localController) Build(ctx context.Context, options controllerapi.BuildOptions, in io.ReadCloser, w io.Writer, out console.File, progressMode string) (string, error) {
|
||||
res, err := cbuild.RunBuild(ctx, b.dockerCli, options, in, progressMode, nil)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
b.resultCtx = res
|
||||
return b.ref, nil
|
||||
}
|
||||
|
||||
func (b *localController) Kill(context.Context) error {
|
||||
return nil // nop
|
||||
}
|
||||
|
|
|
@ -89,13 +89,12 @@ type BuildOptions struct {
|
|||
NetworkMode string `protobuf:"bytes,15,opt,name=NetworkMode,proto3" json:"NetworkMode,omitempty"`
|
||||
NoCacheFilter []string `protobuf:"bytes,16,rep,name=NoCacheFilter,proto3" json:"NoCacheFilter,omitempty"`
|
||||
Platforms []string `protobuf:"bytes,17,rep,name=Platforms,proto3" json:"Platforms,omitempty"`
|
||||
Quiet bool `protobuf:"varint,18,opt,name=Quiet,proto3" json:"Quiet,omitempty"`
|
||||
Secrets []*Secret `protobuf:"bytes,19,rep,name=Secrets,proto3" json:"Secrets,omitempty"`
|
||||
ShmSize int64 `protobuf:"varint,20,opt,name=ShmSize,proto3" json:"ShmSize,omitempty"`
|
||||
SSH []*SSH `protobuf:"bytes,21,rep,name=SSH,proto3" json:"SSH,omitempty"`
|
||||
Tags []string `protobuf:"bytes,22,rep,name=Tags,proto3" json:"Tags,omitempty"`
|
||||
Target string `protobuf:"bytes,23,opt,name=Target,proto3" json:"Target,omitempty"`
|
||||
Ulimits *UlimitOpt `protobuf:"bytes,24,opt,name=Ulimits,proto3" json:"Ulimits,omitempty"`
|
||||
Secrets []*Secret `protobuf:"bytes,18,rep,name=Secrets,proto3" json:"Secrets,omitempty"`
|
||||
ShmSize int64 `protobuf:"varint,19,opt,name=ShmSize,proto3" json:"ShmSize,omitempty"`
|
||||
SSH []*SSH `protobuf:"bytes,20,rep,name=SSH,proto3" json:"SSH,omitempty"`
|
||||
Tags []string `protobuf:"bytes,21,rep,name=Tags,proto3" json:"Tags,omitempty"`
|
||||
Target string `protobuf:"bytes,22,opt,name=Target,proto3" json:"Target,omitempty"`
|
||||
Ulimits *UlimitOpt `protobuf:"bytes,23,opt,name=Ulimits,proto3" json:"Ulimits,omitempty"`
|
||||
Opts *CommonOptions `protobuf:"bytes,25,opt,name=Opts,proto3" json:"Opts,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
|
@ -245,13 +244,6 @@ func (m *BuildOptions) GetPlatforms() []string {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (m *BuildOptions) GetQuiet() bool {
|
||||
if m != nil {
|
||||
return m.Quiet
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (m *BuildOptions) GetSecrets() []*Secret {
|
||||
if m != nil {
|
||||
return m.Secrets
|
||||
|
@ -689,9 +681,10 @@ func (m *CommonOptions) GetProvenance() string {
|
|||
}
|
||||
|
||||
type BuildResponse struct {
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
ExporterResponse map[string]string `protobuf:"bytes,1,rep,name=ExporterResponse,proto3" json:"ExporterResponse,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *BuildResponse) Reset() { *m = BuildResponse{} }
|
||||
|
@ -718,6 +711,13 @@ func (m *BuildResponse) XXX_DiscardUnknown() {
|
|||
|
||||
var xxx_messageInfo_BuildResponse proto.InternalMessageInfo
|
||||
|
||||
func (m *BuildResponse) GetExporterResponse() map[string]string {
|
||||
if m != nil {
|
||||
return m.ExporterResponse
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type DisconnectRequest struct {
|
||||
Ref string `protobuf:"bytes,1,opt,name=Ref,proto3" json:"Ref,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
|
@ -1675,6 +1675,7 @@ func init() {
|
|||
proto.RegisterType((*Ulimit)(nil), "buildx.controller.v1.Ulimit")
|
||||
proto.RegisterType((*CommonOptions)(nil), "buildx.controller.v1.CommonOptions")
|
||||
proto.RegisterType((*BuildResponse)(nil), "buildx.controller.v1.BuildResponse")
|
||||
proto.RegisterMapType((map[string]string)(nil), "buildx.controller.v1.BuildResponse.ExporterResponseEntry")
|
||||
proto.RegisterType((*DisconnectRequest)(nil), "buildx.controller.v1.DisconnectRequest")
|
||||
proto.RegisterType((*DisconnectResponse)(nil), "buildx.controller.v1.DisconnectResponse")
|
||||
proto.RegisterType((*ListRequest)(nil), "buildx.controller.v1.ListRequest")
|
||||
|
@ -1699,111 +1700,112 @@ func init() {
|
|||
func init() { proto.RegisterFile("controller.proto", fileDescriptor_ed7f10298fa1d90f) }
|
||||
|
||||
var fileDescriptor_ed7f10298fa1d90f = []byte{
|
||||
// 1653 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0xef, 0x72, 0x1b, 0x49,
|
||||
0x11, 0x67, 0x25, 0x59, 0x7f, 0x5a, 0x96, 0x93, 0x0c, 0xe1, 0x98, 0x13, 0xc7, 0xc5, 0xd9, 0xe4,
|
||||
0x0e, 0x55, 0x1d, 0x25, 0xdf, 0xf9, 0x38, 0x72, 0x77, 0x09, 0x55, 0xd8, 0x92, 0x55, 0x16, 0x15,
|
||||
0xff, 0x61, 0x95, 0xe4, 0x0a, 0xa8, 0xe2, 0x6a, 0x2d, 0x8d, 0xe5, 0x2d, 0xad, 0x76, 0xc4, 0xce,
|
||||
0x48, 0xb6, 0xf9, 0xc4, 0x13, 0xf0, 0x0a, 0x7c, 0xa6, 0x78, 0x04, 0x3e, 0xf1, 0x0e, 0xbc, 0x07,
|
||||
0x3c, 0x02, 0xd5, 0x3d, 0xb3, 0xd2, 0x2a, 0xd2, 0x2a, 0x71, 0xf1, 0x49, 0xd3, 0xbd, 0xbf, 0x5f,
|
||||
0x77, 0x4f, 0x4f, 0x4f, 0xf7, 0xae, 0xe0, 0x7e, 0x5f, 0x46, 0x3a, 0x96, 0x61, 0x28, 0xe2, 0xe6,
|
||||
0x24, 0x96, 0x5a, 0xb2, 0x87, 0x17, 0xd3, 0x20, 0x1c, 0xdc, 0x34, 0x53, 0x0f, 0x66, 0x5f, 0xd4,
|
||||
0x9f, 0x0f, 0x03, 0x7d, 0x35, 0xbd, 0x68, 0xf6, 0xe5, 0x78, 0x6f, 0x2c, 0x2f, 0x6e, 0xf7, 0x08,
|
||||
0x35, 0x0a, 0xf4, 0x9e, 0x3f, 0x09, 0xf6, 0x94, 0x88, 0x67, 0x41, 0x5f, 0xa8, 0x3d, 0x4b, 0x4a,
|
||||
0x7e, 0x8d, 0x49, 0xf7, 0x8f, 0xb0, 0x7d, 0x88, 0x70, 0x4f, 0xfc, 0x69, 0x2a, 0x94, 0x66, 0xf7,
|
||||
0x21, 0xef, 0x89, 0x4b, 0xee, 0xec, 0x3a, 0x8d, 0x8a, 0x87, 0x4b, 0xf6, 0x02, 0x4a, 0x67, 0x13,
|
||||
0x1d, 0xc8, 0x48, 0xf1, 0xdc, 0xae, 0xd3, 0xa8, 0xee, 0xbb, 0xcd, 0x75, 0x61, 0x34, 0xc9, 0x8c,
|
||||
0x45, 0x7a, 0x09, 0xc5, 0xfd, 0x1b, 0x58, 0x07, 0x56, 0xc1, 0x76, 0xa1, 0xda, 0x92, 0x91, 0x16,
|
||||
0x37, 0xfa, 0xdc, 0xd7, 0x57, 0xd6, 0x51, 0x5a, 0xc5, 0x3e, 0x85, 0x9d, 0xb6, 0xec, 0x8f, 0x44,
|
||||
0x7c, 0x19, 0x84, 0xe2, 0xd4, 0x1f, 0x0b, 0xf2, 0x5b, 0xf1, 0xde, 0xd2, 0xb2, 0x8f, 0xa0, 0x72,
|
||||
0x1e, 0x07, 0x91, 0xee, 0x4c, 0xa3, 0x3e, 0xcf, 0x13, 0x64, 0xa1, 0x60, 0x7f, 0x80, 0x1a, 0xa2,
|
||||
0x06, 0xd6, 0xb2, 0xe2, 0x85, 0xdd, 0x7c, 0xa3, 0xba, 0xff, 0xd5, 0xbb, 0x83, 0x6f, 0x2e, 0xf1,
|
||||
0x8e, 0x22, 0x1d, 0xdf, 0x7a, 0xcb, 0xb6, 0xd8, 0x43, 0xd8, 0x3a, 0x08, 0x43, 0x79, 0xcd, 0xb7,
|
||||
0x76, 0xf3, 0x8d, 0x8a, 0x67, 0x04, 0xc6, 0xa1, 0x74, 0xa0, 0xb5, 0x50, 0x5a, 0xf1, 0x22, 0xe9,
|
||||
0x13, 0x91, 0x9d, 0x41, 0x85, 0x3c, 0x1c, 0xc4, 0x43, 0xc5, 0x4b, 0x14, 0xc8, 0x17, 0xef, 0x11,
|
||||
0xc8, 0x9c, 0x63, 0x82, 0x58, 0xd8, 0x60, 0x47, 0x50, 0x69, 0xf9, 0xfd, 0x2b, 0xd1, 0x89, 0xe5,
|
||||
0x98, 0x97, 0xc9, 0xe0, 0xcf, 0xd6, 0x1b, 0x24, 0x98, 0x35, 0x68, 0xcd, 0xcc, 0x99, 0xec, 0x00,
|
||||
0x4a, 0x24, 0xbc, 0x92, 0xbc, 0x72, 0x37, 0x23, 0x09, 0x8f, 0xb9, 0xb0, 0xdd, 0x1a, 0xc6, 0x72,
|
||||
0x3a, 0x39, 0xf7, 0x63, 0x11, 0x69, 0x0e, 0x74, 0x10, 0x4b, 0x3a, 0xf6, 0x1c, 0x4a, 0x47, 0x37,
|
||||
0x13, 0x19, 0x6b, 0xc5, 0xab, 0xe4, 0xe6, 0xf1, 0x7a, 0x37, 0x06, 0x64, 0x1d, 0x58, 0x06, 0xfb,
|
||||
0x18, 0xe0, 0xe8, 0x46, 0xc7, 0xfe, 0xb1, 0xc4, 0xc4, 0x6e, 0x53, 0x62, 0x53, 0x1a, 0x2c, 0xa8,
|
||||
0xee, 0xd8, 0x1f, 0x8a, 0x6e, 0xbb, 0x13, 0x84, 0x82, 0xd7, 0x4c, 0x41, 0xa5, 0x54, 0xac, 0x03,
|
||||
0xc5, 0x97, 0xfe, 0x85, 0x08, 0x15, 0xdf, 0x21, 0xef, 0xcd, 0xf7, 0x48, 0xbd, 0x21, 0x98, 0x50,
|
||||
0x2c, 0x1b, 0x3d, 0x9d, 0x0a, 0x7d, 0x2d, 0xe3, 0xd1, 0x89, 0x1c, 0x08, 0x7e, 0xcf, 0x78, 0x4a,
|
||||
0xa9, 0xd8, 0x53, 0xa8, 0x9d, 0x4a, 0x93, 0xde, 0x20, 0xd4, 0x22, 0xe6, 0xf7, 0x29, 0xdc, 0x65,
|
||||
0x25, 0x15, 0x6e, 0xe8, 0xeb, 0x4b, 0x19, 0x8f, 0x15, 0x7f, 0x40, 0x88, 0x85, 0x02, 0x6b, 0xeb,
|
||||
0xb7, 0xd3, 0x40, 0x68, 0xce, 0x76, 0x9d, 0x46, 0xd9, 0x33, 0x02, 0xfb, 0x25, 0x94, 0x7a, 0xa2,
|
||||
0x1f, 0x0b, 0xad, 0xf8, 0x0f, 0x69, 0x13, 0x1f, 0xad, 0xdf, 0x84, 0x01, 0x79, 0x09, 0x18, 0x6b,
|
||||
0xb2, 0x77, 0x35, 0xee, 0x05, 0x7f, 0x16, 0xfc, 0xe1, 0xae, 0xd3, 0xc8, 0x7b, 0x89, 0xc8, 0x3e,
|
||||
0x83, 0x7c, 0xaf, 0x77, 0xcc, 0x7f, 0x44, 0xd6, 0x3e, 0xcc, 0xb0, 0xd6, 0x3b, 0xf6, 0x10, 0xc5,
|
||||
0x18, 0x14, 0x5e, 0xf9, 0x43, 0xc5, 0x3f, 0xa0, 0x68, 0x69, 0xcd, 0x3e, 0x80, 0xe2, 0x2b, 0x3f,
|
||||
0x1e, 0x0a, 0xcd, 0x7f, 0x4c, 0x99, 0xb0, 0x12, 0xfb, 0x06, 0x4a, 0xaf, 0xc3, 0x60, 0x1c, 0x68,
|
||||
0xc5, 0x39, 0x35, 0x8c, 0x47, 0xeb, 0x8d, 0x1b, 0xd0, 0xd9, 0x44, 0x7b, 0x09, 0x9e, 0x3d, 0x83,
|
||||
0xc2, 0xd9, 0x44, 0x2b, 0xfe, 0x21, 0xf1, 0x9e, 0x64, 0x14, 0xa3, 0x1c, 0x8f, 0x65, 0x94, 0x74,
|
||||
0x1a, 0x22, 0xd4, 0x7f, 0x0d, 0x6c, 0xf5, 0xd6, 0x62, 0x33, 0x1b, 0x89, 0xdb, 0xa4, 0x99, 0x8d,
|
||||
0xc4, 0x2d, 0x26, 0x77, 0xe6, 0x87, 0xd3, 0xa4, 0xa5, 0x18, 0xe1, 0xdb, 0xdc, 0xd7, 0x4e, 0xfd,
|
||||
0x05, 0xec, 0x2c, 0x5f, 0xb7, 0x3b, 0xb1, 0xbf, 0x81, 0x6a, 0xaa, 0x62, 0xee, 0x42, 0x75, 0xff,
|
||||
0xe5, 0x40, 0x35, 0x55, 0xf8, 0x94, 0xea, 0xdb, 0x89, 0xb0, 0x64, 0x5a, 0xb3, 0x43, 0xd8, 0x3a,
|
||||
0xd0, 0x3a, 0xc6, 0x0e, 0x8c, 0xa7, 0xf5, 0xf3, 0x77, 0x5e, 0x9f, 0x26, 0xc1, 0x4d, 0xf9, 0x1a,
|
||||
0x2a, 0x56, 0x6f, 0x5b, 0x28, 0x1d, 0x44, 0x3e, 0x26, 0xce, 0x36, 0xcc, 0xb4, 0xaa, 0xfe, 0x35,
|
||||
0xc0, 0x82, 0x76, 0xa7, 0x3d, 0xfc, 0xc3, 0x81, 0x07, 0x2b, 0x3d, 0x62, 0xed, 0x4e, 0x8e, 0x97,
|
||||
0x77, 0xb2, 0xff, 0x9e, 0xfd, 0x66, 0x75, 0x3f, 0xff, 0x47, 0xb4, 0xa6, 0xf2, 0xd9, 0x0e, 0xe4,
|
||||
0xba, 0x6d, 0xcb, 0xc8, 0x75, 0xdb, 0x48, 0xc0, 0xf9, 0x63, 0x42, 0xab, 0x78, 0x46, 0x70, 0x3b,
|
||||
0x50, 0x34, 0x77, 0x69, 0x05, 0x5f, 0x87, 0x32, 0xb6, 0x17, 0x1a, 0x63, 0xc6, 0xc7, 0x5c, 0xc6,
|
||||
0x70, 0x8e, 0xa2, 0x99, 0x4d, 0x32, 0x2e, 0xdd, 0xbf, 0x3b, 0x50, 0x99, 0x57, 0x3c, 0x6b, 0x41,
|
||||
0x91, 0xe2, 0x51, 0xdc, 0xa1, 0x3c, 0x7c, 0xf6, 0x8e, 0x2b, 0xd2, 0x7c, 0x43, 0x68, 0xdb, 0x8f,
|
||||
0x0c, 0xb5, 0xfe, 0x1d, 0x54, 0x53, 0xea, 0x35, 0x29, 0xd8, 0x4f, 0xa7, 0x20, 0xb3, 0x65, 0x18,
|
||||
0x27, 0xe9, 0x04, 0xb5, 0xa1, 0x68, 0x94, 0x78, 0x84, 0x34, 0x81, 0xed, 0x11, 0xd2, 0xdc, 0x65,
|
||||
0x50, 0x38, 0xf6, 0xe3, 0x01, 0x19, 0xcd, 0x7b, 0xb4, 0x46, 0x5d, 0x4f, 0x5e, 0x6a, 0xda, 0x70,
|
||||
0xde, 0xa3, 0xb5, 0xfb, 0x1f, 0x07, 0x6a, 0x4b, 0x77, 0x15, 0x9b, 0x11, 0xdd, 0x31, 0x11, 0x5b,
|
||||
0x83, 0x89, 0x88, 0x53, 0xe4, 0x44, 0x68, 0x7f, 0xe0, 0x6b, 0x9f, 0xba, 0xb8, 0xc9, 0xe7, 0x92,
|
||||
0x0e, 0xd9, 0xb6, 0x8f, 0x92, 0x9b, 0xb2, 0x97, 0x88, 0xe8, 0xfd, 0x7c, 0x1a, 0x86, 0xbc, 0x40,
|
||||
0x6a, 0x5a, 0x9b, 0xb1, 0x81, 0xf7, 0xe1, 0x7c, 0xaa, 0xae, 0xf8, 0x16, 0x3d, 0x49, 0x69, 0x16,
|
||||
0xcf, 0x5f, 0x4a, 0x7f, 0xc0, 0x8b, 0xe9, 0xe7, 0xa8, 0xa1, 0x1d, 0x1d, 0x9e, 0x9d, 0xf0, 0x92,
|
||||
0xd9, 0x39, 0xae, 0x91, 0x73, 0x1e, 0xcb, 0x99, 0x88, 0xfc, 0xa8, 0x2f, 0x78, 0x99, 0x9e, 0xa4,
|
||||
0x34, 0xee, 0x3d, 0xa8, 0xd9, 0x97, 0x29, 0x35, 0x91, 0x91, 0x12, 0xee, 0x27, 0xf0, 0xa0, 0x1d,
|
||||
0xa8, 0xbe, 0x8c, 0x22, 0xd1, 0xd7, 0x99, 0xaf, 0x58, 0xee, 0x43, 0x60, 0x69, 0x98, 0x25, 0x3f,
|
||||
0x82, 0xea, 0xcb, 0x40, 0x6d, 0xa0, 0xb9, 0xb0, 0x6d, 0x00, 0x86, 0x80, 0x21, 0x8f, 0xc4, 0xad,
|
||||
0x29, 0xa9, 0x8a, 0x47, 0x6b, 0xf7, 0xaf, 0x0e, 0x6c, 0x77, 0xa3, 0xc9, 0x54, 0x9f, 0x08, 0xa5,
|
||||
0xfc, 0xa1, 0x60, 0x2f, 0xa0, 0xd0, 0x8d, 0x02, 0x4d, 0x76, 0xaa, 0xfb, 0x9f, 0xae, 0x2f, 0x09,
|
||||
0x62, 0x20, 0xcc, 0xb2, 0x8e, 0x7f, 0xe0, 0x11, 0x0b, 0x1b, 0x74, 0xdb, 0xd7, 0xbe, 0x2d, 0xa8,
|
||||
0x8c, 0x31, 0x8e, 0x88, 0x14, 0x11, 0xc5, 0xc3, 0x12, 0x6c, 0x91, 0x51, 0xf7, 0x29, 0xdc, 0x7f,
|
||||
0xdb, 0xfa, 0x9a, 0xad, 0x7d, 0x09, 0xd5, 0x94, 0x15, 0xba, 0x4e, 0x67, 0x1d, 0x02, 0x94, 0x3d,
|
||||
0x5c, 0xe2, 0x5e, 0xe7, 0x81, 0x6c, 0x1b, 0x1f, 0x98, 0x7e, 0x32, 0x3d, 0xcf, 0xe0, 0x5f, 0x72,
|
||||
0x50, 0x4a, 0x4c, 0x3c, 0x5b, 0xda, 0xf7, 0xe3, 0xac, 0x7d, 0xaf, 0x6e, 0xf9, 0x2b, 0x28, 0xcc,
|
||||
0x4b, 0x32, 0x73, 0x96, 0x75, 0x06, 0x29, 0x1a, 0x55, 0xeb, 0xaf, 0xa0, 0xe8, 0x09, 0x85, 0x73,
|
||||
0x37, 0xbf, 0x69, 0x98, 0x19, 0xcc, 0x82, 0x6c, 0x49, 0x48, 0xef, 0x05, 0xc3, 0xc8, 0x37, 0x45,
|
||||
0x9d, 0x49, 0x37, 0x98, 0x14, 0xdd, 0x28, 0x16, 0xe9, 0x9e, 0x40, 0x75, 0x63, 0xa6, 0xd9, 0x19,
|
||||
0xdc, 0xc3, 0xa1, 0xe9, 0x07, 0x91, 0x88, 0x5b, 0x32, 0xba, 0x0c, 0x86, 0x76, 0xa7, 0x9f, 0x64,
|
||||
0x4d, 0xdf, 0x25, 0xb0, 0xf7, 0x36, 0xdb, 0xfd, 0xa7, 0xb3, 0x62, 0x91, 0x2e, 0x1b, 0xf6, 0xa8,
|
||||
0x89, 0x0c, 0x22, 0x6d, 0xeb, 0x33, 0xa5, 0xc1, 0xb0, 0x5a, 0xe3, 0x81, 0x6d, 0xbc, 0xb8, 0x5c,
|
||||
0x34, 0xd0, 0xbc, 0x6d, 0xa0, 0x78, 0xe2, 0xaf, 0x95, 0x88, 0x29, 0x1f, 0x15, 0x8f, 0xd6, 0xf8,
|
||||
0x0a, 0x72, 0x2a, 0x49, 0x6b, 0x2e, 0xb8, 0x95, 0xc8, 0xde, 0xb5, 0xb9, 0xd5, 0x68, 0xef, 0x7a,
|
||||
0x80, 0xcd, 0xfd, 0x54, 0xa2, 0xae, 0x64, 0xde, 0xaa, 0x48, 0x40, 0xdc, 0x2b, 0x7d, 0x4b, 0x37,
|
||||
0xb9, 0xec, 0xe1, 0xd2, 0x3d, 0x80, 0xca, 0xfc, 0x2c, 0xb1, 0xe3, 0x77, 0x06, 0x94, 0xac, 0x9a,
|
||||
0x97, 0xeb, 0x0c, 0x92, 0x32, 0xcc, 0xad, 0x96, 0x61, 0x3e, 0x55, 0x86, 0xcf, 0xa0, 0xb6, 0x74,
|
||||
0xaa, 0x08, 0xf2, 0xe4, 0xb5, 0xb2, 0x86, 0x68, 0x8d, 0xba, 0x96, 0x0c, 0xcd, 0x27, 0x55, 0xcd,
|
||||
0xa3, 0xb5, 0xfb, 0x04, 0x6a, 0x4b, 0xe7, 0xb9, 0xae, 0xfb, 0xba, 0x8f, 0xa1, 0xd6, 0xd3, 0xbe,
|
||||
0x9e, 0xaa, 0xec, 0xbe, 0xf0, 0x5f, 0x07, 0x76, 0x12, 0x8c, 0x6d, 0x0d, 0xbf, 0x80, 0xf2, 0x4c,
|
||||
0xc4, 0x5a, 0xdc, 0xcc, 0x27, 0x0e, 0x6f, 0xe2, 0xb7, 0x62, 0x33, 0xf9, 0x56, 0xc4, 0xa3, 0x7d,
|
||||
0x43, 0x08, 0x6f, 0x8e, 0x64, 0xdf, 0x42, 0x59, 0x91, 0x1d, 0x91, 0xcc, 0xeb, 0x8f, 0xb3, 0x58,
|
||||
0xd6, 0xdf, 0x1c, 0xcf, 0xf6, 0xa0, 0x10, 0xca, 0xa1, 0xa2, 0x13, 0xac, 0xee, 0xff, 0x24, 0x8b,
|
||||
0xf7, 0x52, 0x0e, 0x3d, 0x02, 0xb2, 0xe7, 0x50, 0xbe, 0xf6, 0xe3, 0x28, 0x88, 0x86, 0xc9, 0xb7,
|
||||
0xda, 0xa3, 0x2c, 0xd2, 0x77, 0x06, 0xe7, 0xcd, 0x09, 0x6e, 0x0d, 0xcb, 0xfc, 0x52, 0xda, 0x9c,
|
||||
0xb8, 0xbf, 0xc3, 0xa6, 0x87, 0xa2, 0xdd, 0x7e, 0x17, 0x6a, 0xa6, 0x98, 0xdf, 0x88, 0x58, 0xe1,
|
||||
0xdb, 0x8f, 0xb3, 0xe9, 0x52, 0x1d, 0xa6, 0xa1, 0xde, 0x32, 0xd3, 0xfd, 0xde, 0xf6, 0xf8, 0x44,
|
||||
0x81, 0x63, 0x69, 0xe2, 0xf7, 0x47, 0xfe, 0x30, 0x39, 0xa7, 0x44, 0xc4, 0x27, 0x33, 0xeb, 0xcf,
|
||||
0xcc, 0xb3, 0x44, 0xc4, 0x57, 0x87, 0x58, 0xcc, 0x02, 0xb5, 0x78, 0x11, 0x9b, 0xcb, 0xfb, 0xff,
|
||||
0x2e, 0x00, 0xb4, 0xe6, 0xf1, 0xb0, 0x73, 0xd8, 0x22, 0x7f, 0x6c, 0xd3, 0x67, 0xb7, 0xdd, 0x77,
|
||||
0xfd, 0xc9, 0x46, 0x8c, 0x4d, 0xc6, 0x6b, 0x28, 0x9a, 0xd3, 0x62, 0x59, 0x4d, 0x25, 0x5d, 0x5f,
|
||||
0xf5, 0xa7, 0x9b, 0x41, 0xc6, 0xe8, 0xe7, 0x0e, 0xf3, 0x6c, 0xcb, 0xc9, 0x0a, 0x34, 0x3d, 0x85,
|
||||
0xb2, 0x02, 0x5d, 0x6a, 0xdf, 0x0d, 0x87, 0xfd, 0x06, 0x8a, 0xdd, 0x68, 0x26, 0x47, 0x82, 0xfd,
|
||||
0x74, 0x3d, 0x21, 0xb1, 0xb7, 0xf9, 0x71, 0xc3, 0xf9, 0xdc, 0x61, 0x27, 0x50, 0xc0, 0x69, 0xc9,
|
||||
0x32, 0x5a, 0x7f, 0x6a, 0xd4, 0xd6, 0xdd, 0x4d, 0x10, 0x9b, 0xc5, 0xef, 0x01, 0x16, 0x33, 0x9b,
|
||||
0x65, 0x7c, 0x37, 0xaf, 0x0c, 0xff, 0x7a, 0xe3, 0xdd, 0x40, 0xeb, 0xe0, 0x04, 0x07, 0xd6, 0xa5,
|
||||
0x64, 0x99, 0xa3, 0x6a, 0x5e, 0xee, 0x75, 0x77, 0x13, 0xc4, 0x98, 0x3b, 0x2c, 0xfc, 0x3e, 0x37,
|
||||
0xb9, 0xb8, 0x28, 0xd2, 0xbf, 0x3e, 0x5f, 0xfe, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x47, 0x50, 0x7d,
|
||||
0xc5, 0x5c, 0x12, 0x00, 0x00,
|
||||
// 1672 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x58, 0xdd, 0x6e, 0x23, 0x49,
|
||||
0x15, 0xa6, 0x6d, 0xc7, 0x3f, 0xc7, 0x71, 0x26, 0x53, 0x64, 0x97, 0x5e, 0xb3, 0xec, 0x64, 0x7a,
|
||||
0x66, 0x17, 0x4b, 0x8b, 0x9c, 0xdd, 0x2c, 0xcb, 0xec, 0xec, 0x0c, 0x12, 0x89, 0x1d, 0x2b, 0x46,
|
||||
0xf9, 0x53, 0x3b, 0x33, 0x2b, 0x40, 0x62, 0xd4, 0xb1, 0x2b, 0x4e, 0xcb, 0xed, 0x2e, 0xd3, 0x55,
|
||||
0x76, 0x12, 0xae, 0xb8, 0xe5, 0x86, 0xf7, 0x40, 0x3c, 0x02, 0x57, 0xbc, 0x03, 0xef, 0x01, 0x8f,
|
||||
0x80, 0xce, 0xa9, 0x6a, 0xbb, 0x1d, 0xbb, 0x9d, 0x44, 0x5c, 0xa5, 0xea, 0xf4, 0xf7, 0x9d, 0x73,
|
||||
0xea, 0xd4, 0xf9, 0x29, 0x07, 0x36, 0xbb, 0x22, 0x54, 0x91, 0x08, 0x02, 0x1e, 0xd5, 0x47, 0x91,
|
||||
0x50, 0x82, 0x6d, 0x5d, 0x8c, 0xfd, 0xa0, 0x77, 0x53, 0x4f, 0x7c, 0x98, 0x7c, 0x5d, 0x7d, 0xd3,
|
||||
0xf7, 0xd5, 0xd5, 0xf8, 0xa2, 0xde, 0x15, 0xc3, 0x9d, 0xa1, 0xb8, 0xb8, 0xdd, 0x21, 0xd4, 0xc0,
|
||||
0x57, 0x3b, 0xde, 0xc8, 0xdf, 0x91, 0x3c, 0x9a, 0xf8, 0x5d, 0x2e, 0x77, 0x0c, 0x29, 0xfe, 0xab,
|
||||
0x55, 0x3a, 0x7f, 0x84, 0xf5, 0x7d, 0x84, 0xbb, 0xfc, 0x4f, 0x63, 0x2e, 0x15, 0xdb, 0x84, 0xac,
|
||||
0xcb, 0x2f, 0x6d, 0x6b, 0xdb, 0xaa, 0x95, 0x5c, 0x5c, 0xb2, 0xb7, 0x50, 0x38, 0x1d, 0x29, 0x5f,
|
||||
0x84, 0xd2, 0xce, 0x6c, 0x5b, 0xb5, 0xf2, 0xae, 0x53, 0x5f, 0xe6, 0x46, 0x9d, 0xd4, 0x18, 0xa4,
|
||||
0x1b, 0x53, 0x9c, 0xbf, 0x82, 0x31, 0x60, 0x04, 0x6c, 0x1b, 0xca, 0x0d, 0x11, 0x2a, 0x7e, 0xa3,
|
||||
0xce, 0x3c, 0x75, 0x65, 0x0c, 0x25, 0x45, 0xec, 0x0b, 0xd8, 0x68, 0x8a, 0xee, 0x80, 0x47, 0x97,
|
||||
0x7e, 0xc0, 0x4f, 0xbc, 0x21, 0x27, 0xbb, 0x25, 0xf7, 0x8e, 0x94, 0x7d, 0x0a, 0xa5, 0xb3, 0xc8,
|
||||
0x0f, 0x55, 0x6b, 0x1c, 0x76, 0xed, 0x2c, 0x41, 0x66, 0x02, 0xf6, 0x07, 0xa8, 0x20, 0xaa, 0x67,
|
||||
0x34, 0x4b, 0x3b, 0xb7, 0x9d, 0xad, 0x95, 0x77, 0xbf, 0xbd, 0xdf, 0xf9, 0xfa, 0x1c, 0xef, 0x20,
|
||||
0x54, 0xd1, 0xad, 0x3b, 0xaf, 0x8b, 0x6d, 0xc1, 0xda, 0x5e, 0x10, 0x88, 0x6b, 0x7b, 0x6d, 0x3b,
|
||||
0x5b, 0x2b, 0xb9, 0x7a, 0xc3, 0x6c, 0x28, 0xec, 0x29, 0xc5, 0xa5, 0x92, 0x76, 0x9e, 0xe4, 0xf1,
|
||||
0x96, 0x9d, 0x42, 0x89, 0x2c, 0xec, 0x45, 0x7d, 0x69, 0x17, 0xc8, 0x91, 0xaf, 0x1f, 0xe0, 0xc8,
|
||||
0x94, 0xa3, 0x9d, 0x98, 0xe9, 0x60, 0x07, 0x50, 0x6a, 0x78, 0xdd, 0x2b, 0xde, 0x8a, 0xc4, 0xd0,
|
||||
0x2e, 0x92, 0xc2, 0x9f, 0x2f, 0x57, 0x48, 0x30, 0xa3, 0xd0, 0xa8, 0x99, 0x32, 0xd9, 0x1e, 0x14,
|
||||
0x68, 0x73, 0x2e, 0xec, 0xd2, 0xe3, 0x94, 0xc4, 0x3c, 0xe6, 0xc0, 0x7a, 0xa3, 0x1f, 0x89, 0xf1,
|
||||
0xe8, 0xcc, 0x8b, 0x78, 0xa8, 0x6c, 0xa0, 0x8b, 0x98, 0x93, 0xb1, 0x37, 0x50, 0x38, 0xb8, 0x19,
|
||||
0x89, 0x48, 0x49, 0xbb, 0x4c, 0x66, 0x9e, 0x2f, 0x37, 0xa3, 0x41, 0xc6, 0x80, 0x61, 0xb0, 0xcf,
|
||||
0x00, 0x0e, 0x6e, 0x54, 0xe4, 0x1d, 0x0a, 0x0c, 0xec, 0x3a, 0x05, 0x36, 0x21, 0xc1, 0x84, 0x6a,
|
||||
0x0f, 0xbd, 0x3e, 0x6f, 0x37, 0x5b, 0x7e, 0xc0, 0xed, 0x8a, 0x4e, 0xa8, 0x84, 0x88, 0xb5, 0x20,
|
||||
0x7f, 0xe4, 0x5d, 0xf0, 0x40, 0xda, 0x1b, 0x64, 0xbd, 0xfe, 0x80, 0xd0, 0x6b, 0x82, 0x76, 0xc5,
|
||||
0xb0, 0xd1, 0xd2, 0x09, 0x57, 0xd7, 0x22, 0x1a, 0x1c, 0x8b, 0x1e, 0xb7, 0x9f, 0x68, 0x4b, 0x09,
|
||||
0x11, 0x7b, 0x09, 0x95, 0x13, 0xa1, 0xc3, 0xeb, 0x07, 0x8a, 0x47, 0xf6, 0x26, 0xb9, 0x3b, 0x2f,
|
||||
0xa4, 0xc4, 0x0d, 0x3c, 0x75, 0x29, 0xa2, 0xa1, 0xb4, 0x9f, 0x12, 0x62, 0x26, 0x60, 0xbf, 0x82,
|
||||
0x42, 0x87, 0x77, 0x23, 0xae, 0xa4, 0xcd, 0xc8, 0xdd, 0x4f, 0x97, 0xbb, 0xab, 0x41, 0x6e, 0x0c,
|
||||
0xc6, 0xec, 0xeb, 0x5c, 0x0d, 0x3b, 0xfe, 0x9f, 0xb9, 0xfd, 0xe3, 0x6d, 0xab, 0x96, 0x75, 0xe3,
|
||||
0x2d, 0xfb, 0x12, 0xb2, 0x9d, 0xce, 0xa1, 0xbd, 0x45, 0xda, 0x3e, 0x49, 0xd1, 0xd6, 0x39, 0x74,
|
||||
0x11, 0xc5, 0x18, 0xe4, 0xce, 0xbd, 0xbe, 0xb4, 0x3f, 0x22, 0xbf, 0x68, 0xcd, 0x3e, 0x86, 0xfc,
|
||||
0xb9, 0x17, 0xf5, 0xb9, 0xb2, 0x3f, 0xa6, 0x33, 0x9b, 0x1d, 0x7b, 0x0d, 0x85, 0x77, 0x81, 0x3f,
|
||||
0xf4, 0x95, 0xb4, 0x7f, 0x42, 0xad, 0xe1, 0xd9, 0x72, 0xe5, 0x1a, 0x74, 0x3a, 0x52, 0x6e, 0x8c,
|
||||
0x67, 0xaf, 0x20, 0x77, 0x3a, 0x52, 0xd2, 0xfe, 0x84, 0x78, 0x2f, 0x52, 0xd2, 0x4e, 0x0c, 0x87,
|
||||
0x22, 0x8c, 0x7b, 0x0a, 0x11, 0xaa, 0xbf, 0x01, 0xb6, 0x58, 0x9f, 0xd8, 0xb6, 0x06, 0xfc, 0x36,
|
||||
0x6e, 0x5b, 0x03, 0x7e, 0x8b, 0x25, 0x3a, 0xf1, 0x82, 0x71, 0xdc, 0x3c, 0xf4, 0xe6, 0xfb, 0xcc,
|
||||
0x77, 0x56, 0xf5, 0x2d, 0x6c, 0xcc, 0x17, 0xd6, 0xa3, 0xd8, 0xaf, 0xa1, 0x9c, 0xc8, 0x8d, 0xc7,
|
||||
0x50, 0x9d, 0x7f, 0x59, 0x50, 0x4e, 0xa4, 0x38, 0x85, 0xfa, 0x76, 0xc4, 0x0d, 0x99, 0xd6, 0x6c,
|
||||
0x1f, 0xd6, 0xf6, 0x94, 0x8a, 0xb0, 0xd7, 0xe2, 0x6d, 0xfd, 0xe2, 0xde, 0x42, 0xa9, 0x13, 0x5c,
|
||||
0x27, 0xaa, 0xa6, 0x62, 0x9e, 0x36, 0xb9, 0x54, 0x7e, 0xe8, 0x61, 0xe0, 0x4c, 0x6b, 0x4c, 0x8a,
|
||||
0xaa, 0xdf, 0x01, 0xcc, 0x68, 0x8f, 0x3a, 0xc3, 0x3f, 0x2c, 0x78, 0xba, 0xd0, 0x0d, 0x96, 0x9e,
|
||||
0xe4, 0x70, 0xfe, 0x24, 0xbb, 0x0f, 0xec, 0x2c, 0x8b, 0xe7, 0xf9, 0x3f, 0xbc, 0xd5, 0x99, 0xcf,
|
||||
0x36, 0x20, 0xd3, 0x6e, 0x1a, 0x46, 0xa6, 0xdd, 0x44, 0x02, 0x4e, 0x1a, 0xed, 0x5a, 0xc9, 0xd5,
|
||||
0x1b, 0xa7, 0x05, 0x79, 0x5d, 0x4b, 0x0b, 0xf8, 0x2a, 0x14, 0xb1, 0x91, 0xd0, 0xc0, 0xd2, 0x36,
|
||||
0xa6, 0x7b, 0x74, 0xe7, 0x20, 0x9c, 0x98, 0x20, 0xe3, 0xd2, 0xf9, 0xbb, 0x05, 0xa5, 0x69, 0xc6,
|
||||
0xb3, 0x06, 0xe4, 0xc9, 0x1f, 0x69, 0x5b, 0x14, 0x87, 0x2f, 0xef, 0x29, 0x91, 0xfa, 0x7b, 0x42,
|
||||
0x9b, 0xce, 0xa3, 0xa9, 0xd5, 0x1f, 0xa0, 0x9c, 0x10, 0x2f, 0x09, 0xc1, 0x6e, 0x32, 0x04, 0xa9,
|
||||
0x2d, 0x43, 0x1b, 0x49, 0x06, 0xa8, 0x09, 0x79, 0x2d, 0xc4, 0x2b, 0xa4, 0x59, 0x6b, 0xae, 0x90,
|
||||
0x26, 0x2c, 0x83, 0xdc, 0xa1, 0x17, 0xf5, 0x48, 0x69, 0xd6, 0xa5, 0x35, 0xca, 0x3a, 0xe2, 0x52,
|
||||
0xd1, 0x81, 0xb3, 0x2e, 0xad, 0x9d, 0xff, 0x58, 0x50, 0x99, 0xab, 0x55, 0x6c, 0x46, 0x54, 0x63,
|
||||
0x3c, 0x32, 0x0a, 0xe3, 0x2d, 0xce, 0x8b, 0x63, 0xae, 0xbc, 0x9e, 0xa7, 0x3c, 0xea, 0xd7, 0x3a,
|
||||
0x9e, 0x73, 0x32, 0x64, 0x9b, 0x8e, 0x49, 0x66, 0x8a, 0x6e, 0xbc, 0x45, 0xeb, 0x67, 0xe3, 0x20,
|
||||
0xb0, 0x73, 0x24, 0xa6, 0xb5, 0x1e, 0x10, 0x58, 0x0f, 0x67, 0x63, 0x79, 0x65, 0xaf, 0xd1, 0x97,
|
||||
0x84, 0x64, 0xf6, 0xfd, 0x48, 0x78, 0x3d, 0x3b, 0x9f, 0xfc, 0x8e, 0x12, 0x3a, 0xd1, 0xfe, 0xe9,
|
||||
0xb1, 0x5d, 0xd0, 0x27, 0xc7, 0x35, 0x72, 0xce, 0x22, 0x31, 0xe1, 0xa1, 0x17, 0x76, 0xb9, 0x5d,
|
||||
0xa4, 0x2f, 0x09, 0x89, 0xf3, 0x4f, 0x0b, 0x2a, 0xe6, 0xdd, 0x24, 0x47, 0x22, 0x94, 0x9c, 0x71,
|
||||
0xd8, 0xd4, 0x3a, 0x79, 0x14, 0xcb, 0xcc, 0x8d, 0xbf, 0x5e, 0x31, 0x6e, 0x62, 0x68, 0xfd, 0x2e,
|
||||
0x57, 0xdf, 0xff, 0x82, 0xca, 0x6a, 0x03, 0x3e, 0x5a, 0x0a, 0x7d, 0x54, 0x59, 0x7c, 0x0e, 0x4f,
|
||||
0x9b, 0xbe, 0xec, 0x8a, 0x30, 0xe4, 0x5d, 0x95, 0xfa, 0xf2, 0x73, 0xb6, 0x80, 0x25, 0x61, 0xda,
|
||||
0x9a, 0xf3, 0x0c, 0xca, 0x47, 0xbe, 0x5c, 0x41, 0x73, 0x60, 0x5d, 0x03, 0x4c, 0x64, 0x18, 0xe4,
|
||||
0x06, 0xfc, 0x56, 0xe7, 0x7f, 0xc9, 0xa5, 0xb5, 0xf3, 0x37, 0x0b, 0xd6, 0xdb, 0xe1, 0x68, 0xac,
|
||||
0x8e, 0xb9, 0x94, 0x5e, 0x9f, 0xb3, 0xb7, 0x90, 0x6b, 0x87, 0xbe, 0x22, 0x3d, 0xe5, 0xdd, 0x2f,
|
||||
0x96, 0x87, 0x8c, 0x18, 0x08, 0x33, 0xac, 0xc3, 0x1f, 0xb9, 0xc4, 0xc2, 0x69, 0xd2, 0xf4, 0x94,
|
||||
0x67, 0xb2, 0x3f, 0xe5, 0x75, 0x81, 0x88, 0x04, 0x11, 0xb7, 0xfb, 0x05, 0x58, 0x23, 0xa5, 0xce,
|
||||
0x4b, 0xd8, 0xbc, 0xab, 0x7d, 0xc9, 0xd1, 0xbe, 0x81, 0x72, 0x42, 0x0b, 0xd5, 0xfe, 0x69, 0x8b,
|
||||
0x00, 0x45, 0x17, 0x97, 0x78, 0xd6, 0xa9, 0x23, 0xeb, 0xda, 0x86, 0xf3, 0x04, 0x2a, 0xa4, 0x7a,
|
||||
0x1a, 0xc1, 0xbf, 0x64, 0xa0, 0x10, 0xab, 0x78, 0x35, 0x77, 0xee, 0xe7, 0x69, 0xe7, 0x5e, 0x3c,
|
||||
0xf2, 0xb7, 0x90, 0x9b, 0xd6, 0x4f, 0xea, 0xe0, 0x6d, 0xf5, 0x12, 0x34, 0x2a, 0xad, 0x5f, 0x43,
|
||||
0xde, 0xe5, 0x12, 0x1f, 0x09, 0xd9, 0x55, 0x93, 0x57, 0x63, 0x66, 0x64, 0x43, 0x42, 0x7a, 0xc7,
|
||||
0xef, 0x87, 0x9e, 0xae, 0xc0, 0x54, 0xba, 0xc6, 0x24, 0xe8, 0x5a, 0x30, 0x0b, 0xf7, 0x08, 0xca,
|
||||
0x2b, 0x23, 0xcd, 0x4e, 0xe1, 0x09, 0x4e, 0x78, 0xcf, 0x0f, 0x79, 0xd4, 0x10, 0xe1, 0xa5, 0xdf,
|
||||
0x37, 0x27, 0xfd, 0x3c, 0xed, 0xa9, 0x30, 0x07, 0x76, 0xef, 0xb2, 0xb1, 0x62, 0xef, 0xca, 0xa8,
|
||||
0x33, 0x60, 0xf1, 0x8c, 0x84, 0x1f, 0x2a, 0x93, 0x9f, 0x09, 0x09, 0xba, 0xd5, 0x18, 0xf6, 0xcc,
|
||||
0x94, 0xc0, 0xe5, 0xac, 0xdb, 0x67, 0x4d, 0xb7, 0xc7, 0x1b, 0x7f, 0x27, 0x79, 0x44, 0xf1, 0x28,
|
||||
0xb9, 0xb4, 0xc6, 0xf7, 0xd2, 0x89, 0x20, 0xa9, 0xee, 0x46, 0x66, 0x47, 0xfa, 0xae, 0x75, 0x0b,
|
||||
0x42, 0x7d, 0xd7, 0x3d, 0xac, 0xd1, 0x13, 0x81, 0xb2, 0x02, 0x01, 0xf5, 0x06, 0x71, 0xe7, 0xea,
|
||||
0x96, 0xda, 0x4e, 0xd1, 0xc5, 0xa5, 0xb3, 0x07, 0xa5, 0xe9, 0x5d, 0xe2, 0x78, 0x6a, 0xf5, 0x28,
|
||||
0x58, 0x15, 0x37, 0xd3, 0xea, 0xc5, 0x69, 0x98, 0x59, 0x4c, 0xc3, 0x6c, 0x22, 0x0d, 0x5f, 0x41,
|
||||
0x65, 0xee, 0x56, 0x11, 0xe4, 0x8a, 0x6b, 0x69, 0x14, 0xd1, 0x1a, 0x65, 0x0d, 0x11, 0xe8, 0x5f,
|
||||
0x7a, 0x15, 0x97, 0xd6, 0xce, 0x0b, 0xa8, 0xcc, 0xdd, 0xe7, 0xb2, 0x51, 0xe1, 0x3c, 0x87, 0x4a,
|
||||
0x47, 0x79, 0x6a, 0x2c, 0xd3, 0xfb, 0xc2, 0x7f, 0x2d, 0xd8, 0x88, 0x31, 0xa6, 0x35, 0xfc, 0x12,
|
||||
0x8a, 0x13, 0x1e, 0x29, 0x7e, 0x33, 0x1d, 0x8f, 0x76, 0x1d, 0x7f, 0xc2, 0xd6, 0xe3, 0x9f, 0xb0,
|
||||
0x78, 0xb5, 0xef, 0x09, 0xe1, 0x4e, 0x91, 0xec, 0x7b, 0x28, 0x4a, 0xd2, 0xc3, 0xe3, 0xc7, 0xc5,
|
||||
0x67, 0x69, 0x2c, 0x63, 0x6f, 0x8a, 0x67, 0x3b, 0x90, 0x0b, 0x44, 0x5f, 0xd2, 0x0d, 0x96, 0x77,
|
||||
0x7f, 0x9a, 0xc6, 0x3b, 0x12, 0x7d, 0x97, 0x80, 0xec, 0x0d, 0x14, 0xaf, 0xbd, 0x28, 0xf4, 0xc3,
|
||||
0x7e, 0xfc, 0x13, 0xf2, 0x59, 0x1a, 0xe9, 0x07, 0x8d, 0x73, 0xa7, 0x04, 0xa7, 0x82, 0x69, 0x7e,
|
||||
0x29, 0x4c, 0x4c, 0x9c, 0xdf, 0x61, 0xd3, 0xc3, 0xad, 0x39, 0x7e, 0x1b, 0x2a, 0x3a, 0x99, 0xdf,
|
||||
0xf3, 0x48, 0xe2, 0x53, 0xcd, 0x5a, 0x55, 0x54, 0xfb, 0x49, 0xa8, 0x3b, 0xcf, 0x74, 0x3e, 0x98,
|
||||
0x79, 0x14, 0x0b, 0x70, 0x86, 0x8e, 0xbc, 0xee, 0xc0, 0xeb, 0xc7, 0xf7, 0x14, 0x6f, 0xf1, 0xcb,
|
||||
0xc4, 0xd8, 0xd3, 0x93, 0x21, 0xde, 0xe2, 0x3b, 0x27, 0xe2, 0x13, 0x5f, 0xce, 0x5e, 0x8d, 0xd3,
|
||||
0xfd, 0xee, 0xbf, 0x73, 0x00, 0x8d, 0xa9, 0x3f, 0xec, 0x0c, 0xd6, 0xc8, 0x1e, 0x73, 0x56, 0x4e,
|
||||
0x37, 0x3a, 0x77, 0xf5, 0xc5, 0x03, 0x26, 0x20, 0x7b, 0x07, 0x79, 0x7d, 0x5b, 0x2c, 0xad, 0xa9,
|
||||
0x24, 0xf3, 0xab, 0xfa, 0x72, 0x35, 0x48, 0x2b, 0xfd, 0xca, 0x62, 0xae, 0x69, 0x39, 0x69, 0x8e,
|
||||
0x26, 0xa7, 0x50, 0x9a, 0xa3, 0x73, 0xed, 0xbb, 0x66, 0xb1, 0xdf, 0x42, 0xbe, 0x1d, 0x4e, 0xc4,
|
||||
0x80, 0xb3, 0x9f, 0x2d, 0x27, 0xc4, 0xfa, 0x56, 0x7f, 0xae, 0x59, 0x5f, 0x59, 0xec, 0x18, 0x72,
|
||||
0x38, 0x2d, 0x59, 0x4a, 0xeb, 0x4f, 0x8c, 0xda, 0xaa, 0xb3, 0x0a, 0x62, 0xa2, 0xf8, 0x01, 0x60,
|
||||
0x36, 0xb3, 0x59, 0xca, 0xcf, 0xf9, 0x85, 0xe1, 0x5f, 0xad, 0xdd, 0x0f, 0x34, 0x06, 0x8e, 0x71,
|
||||
0x60, 0x5d, 0x0a, 0x96, 0x3a, 0xaa, 0xa6, 0xe9, 0x5e, 0x75, 0x56, 0x41, 0xb4, 0xba, 0xfd, 0xdc,
|
||||
0xef, 0x33, 0xa3, 0x8b, 0x8b, 0x3c, 0xfd, 0x33, 0xea, 0x9b, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff,
|
||||
0x6e, 0x45, 0xe7, 0xe4, 0xf3, 0x12, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
|
|
@ -40,13 +40,12 @@ message BuildOptions {
|
|||
string NetworkMode = 15;
|
||||
repeated string NoCacheFilter = 16;
|
||||
repeated string Platforms = 17;
|
||||
bool Quiet = 18;
|
||||
repeated Secret Secrets = 19;
|
||||
int64 ShmSize = 20;
|
||||
repeated SSH SSH = 21;
|
||||
repeated string Tags = 22;
|
||||
string Target = 23;
|
||||
UlimitOpt Ulimits = 24;
|
||||
repeated Secret Secrets = 18;
|
||||
int64 ShmSize = 19;
|
||||
repeated SSH SSH = 20;
|
||||
repeated string Tags = 21;
|
||||
string Target = 22;
|
||||
UlimitOpt Ulimits = 23;
|
||||
|
||||
CommonOptions Opts = 25;
|
||||
}
|
||||
|
@ -95,7 +94,9 @@ message CommonOptions {
|
|||
string Provenance = 8; // TODO
|
||||
}
|
||||
|
||||
message BuildResponse {}
|
||||
message BuildResponse {
|
||||
map<string, string> ExporterResponse = 1;
|
||||
}
|
||||
|
||||
message DisconnectRequest {
|
||||
string Ref = 1;
|
||||
|
|
|
@ -91,18 +91,21 @@ func (c *Client) Invoke(ctx context.Context, ref string, containerConfig pb.Cont
|
|||
})
|
||||
}
|
||||
|
||||
func (c *Client) Build(ctx context.Context, options pb.BuildOptions, in io.ReadCloser, w io.Writer, out console.File, progressMode string) (string, error) {
|
||||
func (c *Client) Build(ctx context.Context, options pb.BuildOptions, in io.ReadCloser, w io.Writer, out console.File, progressMode string) (string, *client.SolveResponse, error) {
|
||||
ref := identity.NewID()
|
||||
pw, err := progress.NewPrinter(context.TODO(), w, out, progressMode)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", nil, err
|
||||
}
|
||||
statusChan := make(chan *client.SolveStatus)
|
||||
statusDone := make(chan struct{})
|
||||
eg, egCtx := errgroup.WithContext(ctx)
|
||||
var resp *client.SolveResponse
|
||||
eg.Go(func() error {
|
||||
defer close(statusChan)
|
||||
return c.build(egCtx, ref, options, in, statusChan)
|
||||
var err error
|
||||
resp, err = c.build(egCtx, ref, options, in, statusChan)
|
||||
return err
|
||||
})
|
||||
eg.Go(func() error {
|
||||
defer close(statusDone)
|
||||
|
@ -116,20 +119,27 @@ func (c *Client) Build(ctx context.Context, options pb.BuildOptions, in io.ReadC
|
|||
<-statusDone
|
||||
return pw.Wait()
|
||||
})
|
||||
return ref, eg.Wait()
|
||||
return ref, resp, eg.Wait()
|
||||
}
|
||||
|
||||
func (c *Client) build(ctx context.Context, ref string, options pb.BuildOptions, in io.ReadCloser, statusChan chan *client.SolveStatus) error {
|
||||
func (c *Client) build(ctx context.Context, ref string, options pb.BuildOptions, in io.ReadCloser, statusChan chan *client.SolveStatus) (*client.SolveResponse, error) {
|
||||
eg, egCtx := errgroup.WithContext(ctx)
|
||||
done := make(chan struct{})
|
||||
|
||||
var resp *client.SolveResponse
|
||||
|
||||
eg.Go(func() error {
|
||||
defer close(done)
|
||||
if _, err := c.client().Build(egCtx, &pb.BuildRequest{
|
||||
pbResp, err := c.client().Build(egCtx, &pb.BuildRequest{
|
||||
Ref: ref,
|
||||
Options: &options,
|
||||
}); err != nil {
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
resp = &client.SolveResponse{
|
||||
ExporterResponse: pbResp.ExporterResponse,
|
||||
}
|
||||
return nil
|
||||
})
|
||||
eg.Go(func() error {
|
||||
|
@ -254,7 +264,7 @@ func (c *Client) build(ctx context.Context, ref string, options pb.BuildOptions,
|
|||
return eg2.Wait()
|
||||
})
|
||||
}
|
||||
return eg.Wait()
|
||||
return resp, eg.Wait()
|
||||
}
|
||||
|
||||
func (c *Client) client() pb.ControllerClient {
|
||||
|
|
|
@ -141,7 +141,7 @@ func serveCmd(dockerCli command.Cli) *cobra.Command {
|
|||
}()
|
||||
|
||||
// prepare server
|
||||
b := NewServer(func(ctx context.Context, options *controllerapi.BuildOptions, stdin io.Reader, statusChan chan *client.SolveStatus) (res *build.ResultContext, err error) {
|
||||
b := NewServer(func(ctx context.Context, options *controllerapi.BuildOptions, stdin io.Reader, statusChan chan *client.SolveStatus) (*client.SolveResponse, *build.ResultContext, error) {
|
||||
return cbuild.RunBuild(ctx, dockerCli, *options, stdin, "quiet", statusChan)
|
||||
})
|
||||
defer b.Close()
|
||||
|
|
|
@ -17,7 +17,7 @@ import (
|
|||
"golang.org/x/sync/errgroup"
|
||||
)
|
||||
|
||||
type BuildFunc func(ctx context.Context, options *pb.BuildOptions, stdin io.Reader, statusChan chan *client.SolveStatus) (res *build.ResultContext, err error)
|
||||
type BuildFunc func(ctx context.Context, options *pb.BuildOptions, stdin io.Reader, statusChan chan *client.SolveStatus) (resp *client.SolveResponse, res *build.ResultContext, err error)
|
||||
|
||||
func NewServer(buildFunc BuildFunc) *Server {
|
||||
return &Server{
|
||||
|
@ -150,7 +150,7 @@ func (m *Server) Build(ctx context.Context, req *pb.BuildRequest) (*pb.BuildResp
|
|||
// Build the specified request
|
||||
ctx, cancel := context.WithCancel(ctx)
|
||||
defer cancel()
|
||||
res, err := m.buildFunc(ctx, req.Options, inR, statusChan)
|
||||
resp, res, err := m.buildFunc(ctx, req.Options, inR, statusChan)
|
||||
m.sessionMu.Lock()
|
||||
if s, ok := m.session[ref]; ok {
|
||||
s.result = res
|
||||
|
@ -162,7 +162,12 @@ func (m *Server) Build(ctx context.Context, req *pb.BuildRequest) (*pb.BuildResp
|
|||
}
|
||||
m.sessionMu.Unlock()
|
||||
|
||||
return &pb.BuildResponse{}, err
|
||||
if resp == nil {
|
||||
resp = &client.SolveResponse{}
|
||||
}
|
||||
return &pb.BuildResponse{
|
||||
ExporterResponse: resp.ExporterResponse,
|
||||
}, err
|
||||
}
|
||||
|
||||
func (m *Server) Status(req *pb.StatusRequest, stream pb.Controller_StatusServer) error {
|
||||
|
|
|
@ -121,7 +121,7 @@ func RunMonitor(ctx context.Context, curRef string, options controllerapi.BuildO
|
|||
fmt.Println("disconnect error", err)
|
||||
}
|
||||
}
|
||||
ref, err := c.Build(ctx, options, nil, stdout, stderr, progressMode) // TODO: support stdin, hold build ref
|
||||
ref, _, err := c.Build(ctx, options, nil, stdout, stderr, progressMode) // TODO: support stdin, hold build ref
|
||||
if err != nil {
|
||||
fmt.Printf("failed to reload: %v\n", err)
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue