|
@@ -27,6 +27,7 @@ import (
|
|
|
swarmrouter "github.com/docker/docker/api/server/router/swarm"
|
|
|
systemrouter "github.com/docker/docker/api/server/router/system"
|
|
|
"github.com/docker/docker/api/server/router/volume"
|
|
|
+ "github.com/docker/docker/api/types"
|
|
|
buildkit "github.com/docker/docker/builder/builder-next"
|
|
|
"github.com/docker/docker/builder/dockerfile"
|
|
|
"github.com/docker/docker/builder/fscache"
|
|
@@ -253,6 +254,7 @@ type routerOptions struct {
|
|
|
buildBackend *buildbackend.Backend
|
|
|
buildCache *fscache.FSCache // legacy
|
|
|
buildkit *buildkit.Builder
|
|
|
+ builderVersion types.BuilderVersion
|
|
|
daemon *daemon.Daemon
|
|
|
api *apiserver.Server
|
|
|
cluster *cluster.Cluster
|
|
@@ -283,8 +285,7 @@ func newRouterOptions(config *config.Config, daemon *daemon.Daemon) (routerOptio
|
|
|
if err != nil {
|
|
|
return opts, err
|
|
|
}
|
|
|
-
|
|
|
- buildkit, err := buildkit.New(buildkit.Opt{
|
|
|
+ bk, err := buildkit.New(buildkit.Opt{
|
|
|
SessionManager: sm,
|
|
|
Root: filepath.Join(config.Root, "buildkit"),
|
|
|
Dist: daemon.DistributionServices(),
|
|
@@ -293,16 +294,24 @@ func newRouterOptions(config *config.Config, daemon *daemon.Daemon) (routerOptio
|
|
|
return opts, err
|
|
|
}
|
|
|
|
|
|
- bb, err := buildbackend.NewBackend(daemon.ImageService(), manager, buildCache, buildkit)
|
|
|
+ bb, err := buildbackend.NewBackend(daemon.ImageService(), manager, buildCache, bk)
|
|
|
if err != nil {
|
|
|
return opts, errors.Wrap(err, "failed to create buildmanager")
|
|
|
}
|
|
|
-
|
|
|
+ var bv types.BuilderVersion
|
|
|
+ if v, ok := config.Features["buildkit"]; ok {
|
|
|
+ if v {
|
|
|
+ bv = types.BuilderBuildKit
|
|
|
+ } else {
|
|
|
+ bv = types.BuilderV1
|
|
|
+ }
|
|
|
+ }
|
|
|
return routerOptions{
|
|
|
sessionManager: sm,
|
|
|
buildBackend: bb,
|
|
|
buildCache: buildCache,
|
|
|
- buildkit: buildkit,
|
|
|
+ buildkit: bk,
|
|
|
+ builderVersion: bv,
|
|
|
daemon: daemon,
|
|
|
}, nil
|
|
|
}
|
|
@@ -476,9 +485,9 @@ func initRouter(opts routerOptions) {
|
|
|
checkpointrouter.NewRouter(opts.daemon, decoder),
|
|
|
container.NewRouter(opts.daemon, decoder),
|
|
|
image.NewRouter(opts.daemon.ImageService()),
|
|
|
- systemrouter.NewRouter(opts.daemon, opts.cluster, opts.buildCache, opts.buildkit),
|
|
|
+ systemrouter.NewRouter(opts.daemon, opts.cluster, opts.buildCache, opts.buildkit, opts.builderVersion),
|
|
|
volume.NewRouter(opts.daemon.VolumesService()),
|
|
|
- build.NewRouter(opts.buildBackend, opts.daemon),
|
|
|
+ build.NewRouter(opts.buildBackend, opts.daemon, opts.builderVersion),
|
|
|
sessionrouter.NewRouter(opts.sessionManager),
|
|
|
swarmrouter.NewRouter(opts.cluster),
|
|
|
pluginrouter.NewRouter(opts.daemon.PluginManager()),
|