@@ -244,6 +244,8 @@ func runBuild(dockerCli command.Cli, in buildOptions) (err error) {
244244}
245245
246246func buildTargets (ctx context.Context , dockerCli command.Cli , opts map [string ]build.Options , progressMode , contextPathHash , metadataFile string , in buildOptions ) (imageID string , err error ) {
247+ var buildErr error
248+
247249 ctx2 , cancel := context .WithCancel (context .TODO ())
248250 defer cancel ()
249251
@@ -260,7 +262,7 @@ func buildTargets(ctx context.Context, dockerCli command.Cli, opts map[string]bu
260262 return "" , err
261263 }
262264 defer func () {
263- err := depot .FinishBuild (b .ID )
265+ err := depot .FinishBuild (b .ID , buildErr )
264266 if err != nil {
265267 log .Printf ("error releasing builder: %v" , err )
266268 }
@@ -271,13 +273,13 @@ func buildTargets(ctx context.Context, dockerCli command.Cli, opts map[string]bu
271273 return "" , err
272274 }
273275
274- resp , err := build .Build (ctx , dis , opts , dockerAPI (dockerCli ), confutil .ConfigDir (dockerCli ), printer )
276+ resp , buildErr := build .Build (ctx , dis , opts , dockerAPI (dockerCli ), confutil .ConfigDir (dockerCli ), printer )
275277 err1 := printer .Wait ()
276- if err == nil {
277- err = err1
278+ if buildErr == nil {
279+ buildErr = err1
278280 }
279- if err != nil {
280- return "" , err
281+ if buildErr != nil {
282+ return "" , buildErr
281283 }
282284
283285 if len (metadataFile ) > 0 && resp != nil {
@@ -293,7 +295,7 @@ func buildTargets(ctx context.Context, dockerCli command.Cli, opts map[string]bu
293295 _ = d .Driver .Stop (ctx , false )
294296 }
295297
296- return resp [defaultTargetName ].ExporterResponse ["containerimage.digest" ], err
298+ return resp [defaultTargetName ].ExporterResponse ["containerimage.digest" ], buildErr
297299}
298300
299301func getDrivers (ctx context.Context , dockerCli command.Cli , contextPathHash string , buildID string ) ([]build.DriverInfo , error ) {
0 commit comments