automatically start/upgrade buildkitd

- Automatically start a buildkit daemon if no BUILDKIT_HOST is
  provided (and if not already started)
- Customization of BUILDKIT_HOST is still possible, just like before
- Automatically upgrade the managed daemon to the version used by dagger
  if necessary
- Add CI test to make sure the managed buildkit and the vendored
  buildkit versions match

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
Andrea Luzzardi
2021-03-02 16:14:53 -08:00
parent 50e8b8c07d
commit 14ff14ea4f
5 changed files with 184 additions and 19 deletions

View File

@@ -22,15 +22,12 @@ import (
bkgw "github.com/moby/buildkit/frontend/gateway/client"
// docker output
"dagger.io/go/pkg/buildkitd"
"dagger.io/go/pkg/progressui"
"dagger.io/go/dagger/compiler"
)
const (
defaultBuildkitHost = "docker-container://buildkitd"
)
// A dagger client
type Client struct {
c *bk.Client
@@ -41,7 +38,12 @@ func NewClient(ctx context.Context, host string) (*Client, error) {
host = os.Getenv("BUILDKIT_HOST")
}
if host == "" {
host = defaultBuildkitHost
h, err := buildkitd.Start(ctx)
if err != nil {
return nil, err
}
host = h
}
c, err := bk.New(ctx, host)
if err != nil {