@@ -86,7 +86,7 @@ func filterPrefix(opts map[string]string, pfx string) map[string]string {
8686 return m
8787}
8888
89- func (gf * gatewayFrontend ) Solve (ctx context.Context , llbBridge frontend.FrontendLLBBridge , opts map [string ]string , inputs map [string ]* opspb.Definition , sid string , sm * session.Manager ) (* frontend.Result , error ) {
89+ func (gf * gatewayFrontend ) Solve (ctx context.Context , llbBridge frontend.FrontendLLBBridge , exec executor. Executor , opts map [string ]string , inputs map [string ]* opspb.Definition , sid string , sm * session.Manager ) (* frontend.Result , error ) {
9090 source , ok := opts [keySource ]
9191 if ! ok {
9292 return nil , errors .Errorf ("no source specified for gateway" )
@@ -141,7 +141,7 @@ func (gf *gatewayFrontend) Solve(ctx context.Context, llbBridge frontend.Fronten
141141 }
142142 }
143143 } else {
144- c , err := forwarder .LLBBridgeToGatewayClient (ctx , llbBridge , opts , inputs , gf .workers , sid , sm )
144+ c , err := forwarder .LLBBridgeToGatewayClient (ctx , llbBridge , exec , opts , inputs , gf .workers , sid , sm )
145145 if err != nil {
146146 return nil , err
147147 }
@@ -281,18 +281,13 @@ func (gf *gatewayFrontend) Solve(ctx context.Context, llbBridge frontend.Fronten
281281 }
282282 }
283283
284- lbf , ctx , err := serveLLBBridgeForwarder (ctx , llbBridge , gf .workers , inputs , sid , sm )
284+ lbf , ctx , err := serveLLBBridgeForwarder (ctx , llbBridge , exec , gf .workers , inputs , sid , sm )
285285 defer lbf .conn .Close () //nolint
286286 if err != nil {
287287 return nil , err
288288 }
289289 defer lbf .Discard ()
290290
291- w , err := gf .workers .GetDefault ()
292- if err != nil {
293- return nil , err
294- }
295-
296291 mdmnt , release , err := metadataMount (frontendDef )
297292 if err != nil {
298293 return nil , err
@@ -305,7 +300,7 @@ func (gf *gatewayFrontend) Solve(ctx context.Context, llbBridge frontend.Fronten
305300 mnts = append (mnts , * mdmnt )
306301 }
307302
308- _ , err = w . Executor () .Run (ctx , "" , container .MountWithSession (rootFS , session .NewGroup (sid )), mnts , executor.ProcessInfo {Meta : meta , Stdin : lbf .Stdin , Stdout : lbf .Stdout , Stderr : os .Stderr }, nil )
303+ _ , err = exec .Run (ctx , "" , container .MountWithSession (rootFS , session .NewGroup (sid )), mnts , executor.ProcessInfo {Meta : meta , Stdin : lbf .Stdin , Stdout : lbf .Stdout , Stderr : os .Stderr }, nil )
309304 if err != nil {
310305 if errdefs .IsCanceled (ctx , err ) && lbf .isErrServerClosed {
311306 err = errors .Errorf ("frontend grpc server closed unexpectedly" )
@@ -434,11 +429,11 @@ func (lbf *llbBridgeForwarder) Result() (*frontend.Result, error) {
434429 return lbf .result , nil
435430}
436431
437- func NewBridgeForwarder (ctx context.Context , llbBridge frontend.FrontendLLBBridge , workers worker.Infos , inputs map [string ]* opspb.Definition , sid string , sm * session.Manager ) LLBBridgeForwarder {
438- return newBridgeForwarder (ctx , llbBridge , workers , inputs , sid , sm )
432+ func NewBridgeForwarder (ctx context.Context , llbBridge frontend.FrontendLLBBridge , exec executor. Executor , workers worker.Infos , inputs map [string ]* opspb.Definition , sid string , sm * session.Manager ) LLBBridgeForwarder {
433+ return newBridgeForwarder (ctx , llbBridge , exec , workers , inputs , sid , sm )
439434}
440435
441- func newBridgeForwarder (ctx context.Context , llbBridge frontend.FrontendLLBBridge , workers worker.Infos , inputs map [string ]* opspb.Definition , sid string , sm * session.Manager ) * llbBridgeForwarder {
436+ func newBridgeForwarder (ctx context.Context , llbBridge frontend.FrontendLLBBridge , exec executor. Executor , workers worker.Infos , inputs map [string ]* opspb.Definition , sid string , sm * session.Manager ) * llbBridgeForwarder {
442437 lbf := & llbBridgeForwarder {
443438 callCtx : ctx ,
444439 llbBridge : llbBridge ,
@@ -451,13 +446,14 @@ func newBridgeForwarder(ctx context.Context, llbBridge frontend.FrontendLLBBridg
451446 sid : sid ,
452447 sm : sm ,
453448 ctrs : map [string ]gwclient.Container {},
449+ executor : exec ,
454450 }
455451 return lbf
456452}
457453
458- func serveLLBBridgeForwarder (ctx context.Context , llbBridge frontend.FrontendLLBBridge , workers worker.Infos , inputs map [string ]* opspb.Definition , sid string , sm * session.Manager ) (* llbBridgeForwarder , context.Context , error ) {
454+ func serveLLBBridgeForwarder (ctx context.Context , llbBridge frontend.FrontendLLBBridge , exec executor. Executor , workers worker.Infos , inputs map [string ]* opspb.Definition , sid string , sm * session.Manager ) (* llbBridgeForwarder , context.Context , error ) {
459455 ctx , cancel := context .WithCancel (ctx )
460- lbf := newBridgeForwarder (ctx , llbBridge , workers , inputs , sid , sm )
456+ lbf := newBridgeForwarder (ctx , llbBridge , exec , workers , inputs , sid , sm )
461457 server := grpc .NewServer (grpc .UnaryInterceptor (grpcerrors .UnaryServerInterceptor ), grpc .StreamInterceptor (grpcerrors .StreamServerInterceptor ))
462458 grpc_health_v1 .RegisterHealthServer (server , health .NewServer ())
463459 pb .RegisterLLBBridgeServer (server , lbf )
@@ -552,6 +548,7 @@ type llbBridgeForwarder struct {
552548 isErrServerClosed bool
553549 sid string
554550 sm * session.Manager
551+ executor executor.Executor
555552 * pipe
556553 ctrs map [string ]gwclient.Container
557554 ctrsMu sync.Mutex
@@ -1042,7 +1039,7 @@ func (lbf *llbBridgeForwarder) NewContainer(ctx context.Context, in *pb.NewConta
10421039 // and we want the context to live for the duration of the container.
10431040 group := session .NewGroup (lbf .sid )
10441041
1045- w , err := lbf .workers .GetDefault ()
1042+ cm , err := lbf .workers .DefaultCacheManager ()
10461043 if err != nil {
10471044 return nil , stack .Enable (err )
10481045 }
@@ -1052,7 +1049,7 @@ func (lbf *llbBridgeForwarder) NewContainer(ctx context.Context, in *pb.NewConta
10521049 return nil , stack .Enable (err )
10531050 }
10541051
1055- ctr , err := container .NewContainer (context .Background (), w , lbf .sm , group , ctrReq )
1052+ ctr , err := container .NewContainer (context .Background (), cm , lbf . executor , lbf .sm , group , ctrReq )
10561053 if err != nil {
10571054 return nil , stack .Enable (err )
10581055 }
0 commit comments