From 678ee862ea2e664815e3a95b33669ec27fbe2539 Mon Sep 17 00:00:00 2001 From: david Date: Mon, 10 Aug 2026 14:30:49 +0200 Subject: [PATCH] fix(docker): COPY patches/ into every builder stage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The lockfile gained patchedDependencies (libsodium-wrappers-sumo) in 2aa1688, and the package manager hashes the patch file during install — every image build since then fails with ENOENT on /repo/patches. No image had been rebuilt since, so it surfaced only on the next deploy. Co-Authored-By: Claude Fable 5 --- buyer/Dockerfile | 2 ++ gateway/Dockerfile | 2 ++ indexer/Dockerfile | 2 ++ supplier/Dockerfile | 2 ++ wallet-monitor/Dockerfile | 2 ++ 5 files changed, 10 insertions(+) diff --git a/buyer/Dockerfile b/buyer/Dockerfile index b28b93e..5a66eaa 100644 --- a/buyer/Dockerfile +++ b/buyer/Dockerfile @@ -35,6 +35,8 @@ RUN apk add --no-cache python3 make g++ RUN corepack enable && corepack prepare pnpm@10.33.2 --activate COPY pnpm-workspace.yaml pnpm-lock.yaml package.json tsconfig.base.json .npmrc ./ +# pnpm-lock.yaml's patchedDependencies hash the patch files at install time. +COPY patches ./patches COPY packages/shared/package.json ./packages/shared/package.json COPY buyer/package.json ./buyer/package.json COPY supplier/package.json ./supplier/package.json diff --git a/gateway/Dockerfile b/gateway/Dockerfile index d062f7d..41dad84 100644 --- a/gateway/Dockerfile +++ b/gateway/Dockerfile @@ -22,6 +22,8 @@ RUN apk add --no-cache python3 make g++ RUN corepack enable && corepack prepare pnpm@10.33.2 --activate COPY pnpm-workspace.yaml pnpm-lock.yaml package.json tsconfig.base.json .npmrc ./ +# pnpm-lock.yaml's patchedDependencies hash the patch files at install time. +COPY patches ./patches COPY packages/shared/package.json ./packages/shared/package.json COPY buyer/package.json ./buyer/package.json COPY gateway/package.json ./gateway/package.json diff --git a/indexer/Dockerfile b/indexer/Dockerfile index b9892ed..17c8d67 100644 --- a/indexer/Dockerfile +++ b/indexer/Dockerfile @@ -29,6 +29,8 @@ RUN apk add --no-cache python3 make g++ RUN corepack enable && corepack prepare pnpm@10.33.2 --activate COPY pnpm-workspace.yaml pnpm-lock.yaml package.json tsconfig.base.json .npmrc ./ +# pnpm-lock.yaml's patchedDependencies hash the patch files at install time. +COPY patches ./patches COPY packages/shared/package.json ./packages/shared/package.json COPY indexer/package.json ./indexer/package.json COPY indexer-ui/package.json ./indexer-ui/package.json diff --git a/supplier/Dockerfile b/supplier/Dockerfile index 4a80e8a..1887adc 100644 --- a/supplier/Dockerfile +++ b/supplier/Dockerfile @@ -27,6 +27,8 @@ RUN corepack enable && corepack prepare pnpm@10.33.2 --activate # Workspace manifests first to maximise layer cache reuse. COPY pnpm-workspace.yaml pnpm-lock.yaml package.json tsconfig.base.json .npmrc ./ +# pnpm-lock.yaml's patchedDependencies hash the patch files at install time. +COPY patches ./patches COPY packages/shared/package.json ./packages/shared/package.json COPY supplier/package.json ./supplier/package.json # Buyer + indexer manifests are needed because pnpm-lock.yaml indexes the diff --git a/wallet-monitor/Dockerfile b/wallet-monitor/Dockerfile index 708cfc0..41d8616 100644 --- a/wallet-monitor/Dockerfile +++ b/wallet-monitor/Dockerfile @@ -26,6 +26,8 @@ RUN corepack enable && corepack prepare pnpm@10.33.2 --activate # the whole workspace, so every package's manifest must be present even though # --filter only installs what wallet-monitor needs. COPY pnpm-workspace.yaml pnpm-lock.yaml package.json tsconfig.base.json .npmrc ./ +# pnpm-lock.yaml's patchedDependencies hash the patch files at install time. +COPY patches ./patches COPY packages/shared/package.json ./packages/shared/package.json COPY wallet-monitor/package.json ./wallet-monitor/package.json COPY buyer/package.json ./buyer/package.json