1
0
Fork 0

fix(deploy): copy bun patches into docker install stages

package.json now declares patchedDependencies, so bun install --frozen-lockfile requires patches/ to exist when the prod-deps and builder stages install. The v0.2.56 Coolify build failed with "Couldn't find patch file" because only package.json and bun.lock were COPY-ed. Verified by reproducing the failure without patches/ and a clean frozen-lockfile install (patch applied) with them.
This commit is contained in:
Jason Fraley 2026-09-30 15:07:19 -04:00
parent 0c685a2f47
commit b226e010ac

View file

@ -44,6 +44,10 @@ RUN curl -fsSL https://bun.sh/install | bash -s "bun-v1.3.11" \
FROM base AS prod-deps FROM base AS prod-deps
WORKDIR /app WORKDIR /app
COPY package.json bun.lock ./ COPY package.json bun.lock ./
# Bun patches (patchedDependencies in package.json) must be present at
# install time: --frozen-lockfile resolution fails with "Couldn't find
# patch file" without them (v0.2.56 Coolify deploy failure).
COPY patches ./patches
# Retry with a fresh cache dir per attempt: a corrupt tarball download # Retry with a fresh cache dir per attempt: a corrupt tarball download
# (flaky registry/proxy → "Integrity check failed for tarball: drizzle-kit") # (flaky registry/proxy → "Integrity check failed for tarball: drizzle-kit")
# must never be reused from a bun cache, across attempts or cached layers. # must never be reused from a bun cache, across attempts or cached layers.
@ -70,6 +74,8 @@ FROM base AS builder
RUN apk add --no-cache git RUN apk add --no-cache git
WORKDIR /app WORKDIR /app
COPY package.json bun.lock ./ COPY package.json bun.lock ./
# Bun patches: same install-time requirement as prod-deps (see above).
COPY patches ./patches
# Same retry + fresh-cache pattern as prod-deps (corrupt tarball downloads # Same retry + fresh-cache pattern as prod-deps (corrupt tarball downloads
# fail bun's integrity check; a fresh --cache-dir per attempt prevents reuse). # fail bun's integrity check; a fresh --cache-dir per attempt prevents reuse).
RUN for i in 1 2 3; do \ RUN for i in 1 2 3; do \