@@ -27,6 +27,7 @@ import (
27
27
swarmrouter "github.com/docker/docker/api/server/router/swarm"
28
28
systemrouter "github.com/docker/docker/api/server/router/system"
29
29
"github.com/docker/docker/api/server/router/volume"
30
+ "github.com/docker/docker/api/types"
30
31
buildkit "github.com/docker/docker/builder/builder-next"
31
32
"github.com/docker/docker/builder/dockerfile"
32
33
"github.com/docker/docker/builder/fscache"
@@ -253,6 +254,7 @@ type routerOptions struct {
253
254
buildBackend * buildbackend.Backend
254
255
buildCache * fscache.FSCache // legacy
255
256
buildkit * buildkit.Builder
257
+ builderVersion types.BuilderVersion
256
258
daemon * daemon.Daemon
257
259
api * apiserver.Server
258
260
cluster * cluster.Cluster
@@ -283,8 +285,7 @@ func newRouterOptions(config *config.Config, daemon *daemon.Daemon) (routerOptio
283
285
if err != nil {
284
286
return opts , err
285
287
}
286
-
287
- buildkit , err := buildkit .New (buildkit.Opt {
288
+ bk , err := buildkit .New (buildkit.Opt {
288
289
SessionManager : sm ,
289
290
Root : filepath .Join (config .Root , "buildkit" ),
290
291
Dist : daemon .DistributionServices (),
@@ -293,16 +294,24 @@ func newRouterOptions(config *config.Config, daemon *daemon.Daemon) (routerOptio
293
294
return opts , err
294
295
}
295
296
296
- bb , err := buildbackend .NewBackend (daemon .ImageService (), manager , buildCache , buildkit )
297
+ bb , err := buildbackend .NewBackend (daemon .ImageService (), manager , buildCache , bk )
297
298
if err != nil {
298
299
return opts , errors .Wrap (err , "failed to create buildmanager" )
299
300
}
300
-
301
+ var bv types.BuilderVersion
302
+ if v , ok := config .Features ["buildkit" ]; ok {
303
+ if v {
304
+ bv = types .BuilderBuildKit
305
+ } else {
306
+ bv = types .BuilderV1
307
+ }
308
+ }
301
309
return routerOptions {
302
310
sessionManager : sm ,
303
311
buildBackend : bb ,
304
312
buildCache : buildCache ,
305
- buildkit : buildkit ,
313
+ buildkit : bk ,
314
+ builderVersion : bv ,
306
315
daemon : daemon ,
307
316
}, nil
308
317
}
@@ -476,9 +485,9 @@ func initRouter(opts routerOptions) {
476
485
checkpointrouter .NewRouter (opts .daemon , decoder ),
477
486
container .NewRouter (opts .daemon , decoder ),
478
487
image .NewRouter (opts .daemon .ImageService ()),
479
- systemrouter .NewRouter (opts .daemon , opts .cluster , opts .buildCache , opts .buildkit ),
488
+ systemrouter .NewRouter (opts .daemon , opts .cluster , opts .buildCache , opts .buildkit , opts . builderVersion ),
480
489
volume .NewRouter (opts .daemon .VolumesService ()),
481
- build .NewRouter (opts .buildBackend , opts .daemon ),
490
+ build .NewRouter (opts .buildBackend , opts .daemon , opts . builderVersion ),
482
491
sessionrouter .NewRouter (opts .sessionManager ),
483
492
swarmrouter .NewRouter (opts .cluster ),
484
493
pluginrouter .NewRouter (opts .daemon .PluginManager ()),
0 commit comments