buildx/controller/controller.go
Justin Chadwell a9fd128910 controller: move controllers out of commands into separate package
Signed-off-by: Justin Chadwell <me@jedevc.com>
2023-01-31 17:51:33 +00:00

28 lines
766 B
Go

package controller
import (
"context"
"fmt"
"github.com/docker/buildx/controller/control"
"github.com/docker/buildx/controller/local"
"github.com/docker/buildx/controller/remote"
"github.com/docker/cli/cli/command"
"github.com/sirupsen/logrus"
)
func NewController(ctx context.Context, opts control.ControlOptions, dockerCli command.Cli) (c control.BuildxController, err error) {
if !opts.Detach {
logrus.Infof("launching local buildx controller")
c = local.NewLocalBuildxController(ctx, dockerCli)
return c, nil
}
logrus.Infof("connecting to buildx server")
c, err = remote.NewRemoteBuildxController(ctx, dockerCli, opts)
if err != nil {
return nil, fmt.Errorf("failed to use buildx server; use --detach=false: %w", err)
}
return c, nil
}