From 3a2a382eb066456fc863657fb93257cf6750a954 Mon Sep 17 00:00:00 2001 From: Eric Allam Date: Thu, 14 May 2026 10:19:40 +0100 Subject: [PATCH] fix(cli): TRIGGER_BUILD_SKIP_REWRITE_TIMESTAMP escape hatch Local self-hosted builds with buildx's docker driver (e.g. orbstack's default builder) fail on push with: exporter option "rewrite-timestamp" conflicts with "unpack" because the docker driver internally enables `unpack=true` on push, which is mutually exclusive with `rewrite-timestamp`. Add an opt-out env var so contributors running `trigger deploy --local-build --push --builder orbstack` against a local registry can proceed without switching to a docker-container driver. --- .changeset/cli-deploy-skip-rewrite-timestamp.md | 5 +++++ packages/cli-v3/src/deploy/buildImage.ts | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 .changeset/cli-deploy-skip-rewrite-timestamp.md diff --git a/.changeset/cli-deploy-skip-rewrite-timestamp.md b/.changeset/cli-deploy-skip-rewrite-timestamp.md new file mode 100644 index 00000000000..60e82732dce --- /dev/null +++ b/.changeset/cli-deploy-skip-rewrite-timestamp.md @@ -0,0 +1,5 @@ +--- +"trigger.dev": patch +--- + +Add `TRIGGER_BUILD_SKIP_REWRITE_TIMESTAMP=1` escape hatch for local self-hosted builds whose buildx driver doesn't support `rewrite-timestamp` alongside push (e.g. orbstack's default `docker` driver). diff --git a/packages/cli-v3/src/deploy/buildImage.ts b/packages/cli-v3/src/deploy/buildImage.ts index 31a2b658545..aa8285a7c3e 100644 --- a/packages/cli-v3/src/deploy/buildImage.ts +++ b/packages/cli-v3/src/deploy/buildImage.ts @@ -1152,7 +1152,14 @@ function getOutputOptions({ return outputOptions; } - const outputOptions: string[] = ["type=image", "oci-mediatypes=true", "rewrite-timestamp=true"]; + // `rewrite-timestamp` is incompatible with the buildx docker driver's + // implicit `unpack=true` on push (used by e.g. orbstack's default builder). + // Provide an env-var escape hatch so local-dev deploys can opt out. + const skipRewriteTimestamp = process.env.TRIGGER_BUILD_SKIP_REWRITE_TIMESTAMP === "1"; + const outputOptions: string[] = ["type=image", "oci-mediatypes=true"]; + if (!skipRewriteTimestamp) { + outputOptions.push("rewrite-timestamp=true"); + } if (imageTag) { outputOptions.push(`name=${imageTag}`);