From a73d0d31aa049898d1539e5ac2e6ada28f59adbd Mon Sep 17 00:00:00 2001 From: "Zimin A.N." Date: Fri, 8 May 2026 00:10:08 +0300 Subject: [PATCH] =?UTF-8?q?fix(admin-ui):=20pin=20pnpm@9=20=D0=B2=20Docker?= =?UTF-8?q?file=20=E2=80=94=20=D0=BE=D0=B1=D0=BE=D0=B9=D1=82=D0=B8=20v10?= =?UTF-8?q?=20postinstall=20block=20=D0=B2=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pnpm@latest (= v10+) теперь блокирует postinstall scripts по умолчанию и просит "Run pnpm approve-builds to pick which dependencies should be allowed to run scripts". В CI нет интерактивного prompt'а → exit code 1. Pin на v9 — keeps старое behaviour, совместимо с pnpm-lock.yaml v9.0. Same подход что в docs/Dockerfile (pnpm@9.0.0 уже). Если нужен v10 — добавь в package.json: "pnpm": { "onlyBuiltDependencies": ["esbuild", ...] } либо --config.dangerouslyAllowAllBuilds=true в CI command. --- ordinis-admin-ui/Dockerfile | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ordinis-admin-ui/Dockerfile b/ordinis-admin-ui/Dockerfile index 2287ade..7e3a988 100644 --- a/ordinis-admin-ui/Dockerfile +++ b/ordinis-admin-ui/Dockerfile @@ -3,7 +3,12 @@ WORKDIR /app # .npmrc нужен ДО pnpm install, иначе @nstart/* резолвятся в public npm и 404. # pnpm-lock.yaml — для воспроизводимости (frozen lockfile в CI). COPY package.json pnpm-lock.yaml .npmrc ./ -RUN corepack enable && corepack prepare pnpm@latest --activate +# Pin pnpm@9 — v10+ блокирует postinstall scripts по умолчанию ("Run pnpm +# approve-builds to pick which dependencies should be allowed"). В CI +# интерактивного prompt'а нет → exit 1. v9 keeps старое поведение либо +# прокидывает --config.dangerouslyAllowAllBuilds; v9 проще и совместимо +# с lockfile'ом (lockfile v9.0). +RUN corepack enable && corepack prepare pnpm@9 --activate RUN --mount=type=cache,target=/root/.local/share/pnpm/store pnpm install --frozen-lockfile COPY . . RUN pnpm build