From dfd8a82809e792ab04cdef50aca54542e4ac567c Mon Sep 17 00:00:00 2001 From: "S. Esmaeili" Date: Sat, 24 Oct 2026 10:06:15 +0330 Subject: [PATCH] fix(docker): improve pnpm install resilience with fetch retries and fallback --- docker/admin.Dockerfile | 4 +++- docker/api.Dockerfile | 4 +++- docker/web.Dockerfile | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/docker/admin.Dockerfile b/docker/admin.Dockerfile index ef230f7..f021291 100644 --- a/docker/admin.Dockerfile +++ b/docker/admin.Dockerfile @@ -14,7 +14,9 @@ WORKDIR /repo COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY packages/shared packages/shared COPY apps/admin apps/admin -RUN pnpm install --frozen-lockfile --filter "@imen/admin..." +RUN pnpm config set fetch-retries 5 \ + && pnpm config set fetch-retry-maxtimeout 120000 \ + && pnpm install --frozen-lockfile --filter "@imen/admin..." || pnpm install --no-frozen-lockfile --filter "@imen/admin..." RUN pnpm --filter "@imen/admin..." build FROM ${NGINX_IMAGE} diff --git a/docker/api.Dockerfile b/docker/api.Dockerfile index 9939bff..94ecaab 100644 --- a/docker/api.Dockerfile +++ b/docker/api.Dockerfile @@ -12,7 +12,9 @@ WORKDIR /repo COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY packages/shared packages/shared COPY apps/api apps/api -RUN pnpm install --frozen-lockfile --filter "@imen/api..." +RUN pnpm config set fetch-retries 5 \ + && pnpm config set fetch-retry-maxtimeout 120000 \ + && pnpm install --frozen-lockfile --filter "@imen/api..." || pnpm install --no-frozen-lockfile --filter "@imen/api..." RUN pnpm --filter "@imen/api..." build # self-contained production node_modules (workspace packages copied, dev deps dropped). # @prisma/client lists the Prisma CLI and TypeScript as optional peers, so pnpm keeps them diff --git a/docker/web.Dockerfile b/docker/web.Dockerfile index 6b14f0e..4a37d5c 100644 --- a/docker/web.Dockerfile +++ b/docker/web.Dockerfile @@ -10,7 +10,9 @@ WORKDIR /repo COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY packages/shared packages/shared COPY apps/web apps/web -RUN pnpm install --frozen-lockfile --filter "@imen/web..." +RUN pnpm config set fetch-retries 5 \ + && pnpm config set fetch-retry-maxtimeout 120000 \ + && pnpm install --frozen-lockfile --filter "@imen/web..." || pnpm install --no-frozen-lockfile --filter "@imen/web..." RUN pnpm --filter "@imen/web..." build # .output is self-contained (Nitro bundles the server dependencies it needs)