From 793f1ea4f48f293b077e671a7eb9184dca70e88c Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Thu, 15 May 2025 11:44:41 +0200 Subject: [PATCH] history: finalize when exporting Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com> --- src/buildx/history.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/buildx/history.ts b/src/buildx/history.ts index 292bd876..02abde6d 100644 --- a/src/buildx/history.ts +++ b/src/buildx/history.ts @@ -105,8 +105,11 @@ export class History { return await this.exportLegacy(builderName, nodeName, refs, outDir, opts.image); } - // wait 3 seconds to ensure build records are finalized: https://github.com/moby/buildkit/pull/5109 - await Util.sleep(3); + if (await this.buildx.versionSatisfies('<0.24.0')) { + // wait 3 seconds to ensure build records are finalized: https://github.com/moby/buildkit/pull/5109 + // not necessary since buildx 0.24.0: https://github.com/docker/buildx/pull/3152 + await Util.sleep(3); + } const summaries: Summaries = {}; if (!opts.noSummaries) { @@ -139,7 +142,12 @@ export class History { const dockerbuildPath = path.join(outDir, `${History.exportFilename(refs)}.dockerbuild`); - const cmd = await this.getExportCommand(['--builder', builderName, '--output', dockerbuildPath, ...refs]); + const exportArgs = ['--builder', builderName, '--output', dockerbuildPath, ...refs]; + if (await this.buildx.versionSatisfies('>=0.24.0')) { + exportArgs.push('--finalize'); + } + + const cmd = await this.getExportCommand(exportArgs); await Exec.getExecOutput(cmd.command, cmd.args); const dockerbuildStats = fs.statSync(dockerbuildPath);