history: bootstrap builder

Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax
2025-07-08 11:11:37 +02:00
parent 0c747263ef
commit af0090e434
10 changed files with 65 additions and 94 deletions
+1 -11
View File
@@ -28,21 +28,11 @@ type exportOptions struct {
}
func runExport(ctx context.Context, dockerCli command.Cli, opts exportOptions) error {
b, err := builder.New(dockerCli, builder.WithName(opts.builder))
nodes, err := loadNodes(ctx, dockerCli, opts.builder)
if err != nil {
return err
}
nodes, err := b.LoadNodes(ctx, builder.WithData())
if err != nil {
return err
}
for _, node := range nodes {
if node.Err != nil {
return node.Err
}
}
if len(opts.refs) == 0 {
opts.refs = []string{""}
}
+1 -12
View File
@@ -20,7 +20,6 @@ import (
"github.com/containerd/containerd/v2/core/content/proxy"
"github.com/containerd/containerd/v2/core/images"
"github.com/containerd/platforms"
"github.com/docker/buildx/builder"
"github.com/docker/buildx/localstate"
"github.com/docker/buildx/util/cobrautil/completion"
"github.com/docker/buildx/util/confutil"
@@ -158,21 +157,11 @@ func readAttr[T any](attrs map[string]string, k string, dest *T, f func(v string
}
func runInspect(ctx context.Context, dockerCli command.Cli, opts inspectOptions) error {
b, err := builder.New(dockerCli, builder.WithName(opts.builder))
nodes, err := loadNodes(ctx, dockerCli, opts.builder)
if err != nil {
return err
}
nodes, err := b.LoadNodes(ctx)
if err != nil {
return err
}
for _, node := range nodes {
if node.Err != nil {
return node.Err
}
}
recs, err := queryRecords(ctx, opts.ref, nodes, nil)
if err != nil {
return err
+1 -12
View File
@@ -6,7 +6,6 @@ import (
"github.com/containerd/containerd/v2/core/content/proxy"
"github.com/containerd/platforms"
"github.com/docker/buildx/builder"
"github.com/docker/buildx/util/cobrautil/completion"
"github.com/docker/cli/cli/command"
intoto "github.com/in-toto/in-toto-golang/in_toto"
@@ -27,21 +26,11 @@ type attachmentOptions struct {
}
func runAttachment(ctx context.Context, dockerCli command.Cli, opts attachmentOptions) error {
b, err := builder.New(dockerCli, builder.WithName(opts.builder))
nodes, err := loadNodes(ctx, dockerCli, opts.builder)
if err != nil {
return err
}
nodes, err := b.LoadNodes(ctx)
if err != nil {
return err
}
for _, node := range nodes {
if node.Err != nil {
return node.Err
}
}
recs, err := queryRecords(ctx, opts.ref, nodes, nil)
if err != nil {
return err
+1 -12
View File
@@ -5,7 +5,6 @@ import (
"io"
"os"
"github.com/docker/buildx/builder"
"github.com/docker/buildx/util/cobrautil/completion"
"github.com/docker/buildx/util/progress"
"github.com/docker/cli/cli/command"
@@ -23,21 +22,11 @@ type logsOptions struct {
}
func runLogs(ctx context.Context, dockerCli command.Cli, opts logsOptions) error {
b, err := builder.New(dockerCli, builder.WithName(opts.builder))
nodes, err := loadNodes(ctx, dockerCli, opts.builder)
if err != nil {
return err
}
nodes, err := b.LoadNodes(ctx)
if err != nil {
return err
}
for _, node := range nodes {
if node.Err != nil {
return node.Err
}
}
recs, err := queryRecords(ctx, opts.ref, nodes, nil)
if err != nil {
return err
+1 -12
View File
@@ -10,7 +10,6 @@ import (
"time"
"github.com/containerd/console"
"github.com/docker/buildx/builder"
"github.com/docker/buildx/localstate"
"github.com/docker/buildx/util/cobrautil/completion"
"github.com/docker/buildx/util/confutil"
@@ -47,21 +46,11 @@ type lsOptions struct {
}
func runLs(ctx context.Context, dockerCli command.Cli, opts lsOptions) error {
b, err := builder.New(dockerCli, builder.WithName(opts.builder))
nodes, err := loadNodes(ctx, dockerCli, opts.builder)
if err != nil {
return err
}
nodes, err := b.LoadNodes(ctx)
if err != nil {
return err
}
for _, node := range nodes {
if node.Err != nil {
return node.Err
}
}
queryOptions := &queryOptions{}
if opts.local {
+1 -12
View File
@@ -4,7 +4,6 @@ import (
"context"
"fmt"
"github.com/docker/buildx/builder"
"github.com/docker/buildx/util/cobrautil/completion"
"github.com/docker/buildx/util/desktop"
"github.com/docker/cli/cli/command"
@@ -19,21 +18,11 @@ type openOptions struct {
}
func runOpen(ctx context.Context, dockerCli command.Cli, opts openOptions) error {
b, err := builder.New(dockerCli, builder.WithName(opts.builder))
nodes, err := loadNodes(ctx, dockerCli, opts.builder)
if err != nil {
return err
}
nodes, err := b.LoadNodes(ctx)
if err != nil {
return err
}
for _, node := range nodes {
if node.Err != nil {
return node.Err
}
}
recs, err := queryRecords(ctx, opts.ref, nodes, nil)
if err != nil {
return err
+1 -12
View File
@@ -4,7 +4,6 @@ import (
"context"
"io"
"github.com/docker/buildx/builder"
"github.com/docker/buildx/util/cobrautil/completion"
"github.com/docker/cli/cli/command"
"github.com/hashicorp/go-multierror"
@@ -21,21 +20,11 @@ type rmOptions struct {
}
func runRm(ctx context.Context, dockerCli command.Cli, opts rmOptions) error {
b, err := builder.New(dockerCli, builder.WithName(opts.builder))
nodes, err := loadNodes(ctx, dockerCli, opts.builder)
if err != nil {
return err
}
nodes, err := b.LoadNodes(ctx)
if err != nil {
return err
}
for _, node := range nodes {
if node.Err != nil {
return node.Err
}
}
errs := make([][]error, len(opts.refs))
for i := range errs {
errs[i] = make([]error, len(nodes))
+1 -11
View File
@@ -120,21 +120,11 @@ func loadTrace(ctx context.Context, ref string, nodes []builder.Node) (string, [
}
func runTrace(ctx context.Context, dockerCli command.Cli, opts traceOptions) error {
b, err := builder.New(dockerCli, builder.WithName(opts.builder))
nodes, err := loadNodes(ctx, dockerCli, opts.builder)
if err != nil {
return err
}
nodes, err := b.LoadNodes(ctx)
if err != nil {
return err
}
for _, node := range nodes {
if node.Err != nil {
return node.Err
}
}
traceID, data, err := loadTrace(ctx, opts.ref, nodes)
if err != nil {
return err
+26
View File
@@ -16,6 +16,7 @@ import (
"github.com/docker/buildx/build"
"github.com/docker/buildx/builder"
"github.com/docker/buildx/localstate"
"github.com/docker/cli/cli/command"
controlapi "github.com/moby/buildkit/api/services/control"
"github.com/moby/buildkit/util/gitutil"
"github.com/pkg/errors"
@@ -421,3 +422,28 @@ func cutAny(s string, seps ...string) (before, after, sep string, found bool) {
}
return s, "", "", false
}
func loadNodes(ctx context.Context, dockerCli command.Cli, builderName string) ([]builder.Node, error) {
b, err := builder.New(dockerCli, builder.WithName(builderName))
if err != nil {
return nil, err
}
nodes, err := b.LoadNodes(ctx, builder.WithData())
if err != nil {
return nil, err
}
if ok, err := b.Boot(ctx); err != nil {
return nil, err
} else if ok {
nodes, err = b.LoadNodes(ctx, builder.WithData())
if err != nil {
return nil, err
}
}
for _, node := range nodes {
if node.Err != nil {
return nil, node.Err
}
}
return nodes, nil
}