diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9a4c8fe..defff60 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -126,8 +126,8 @@ build-docs: stage: build image: repo.nstart.cloud/library/node:20-alpine before_script: - - corepack enable - - corepack prepare pnpm@9.0.0 --activate + # npm install pnpm — corepack может hang на CI runner integrity checks. + - npm install -g --silent pnpm@9.15.4 script: - cd docs - pnpm install --frozen-lockfile diff --git a/docs/Dockerfile b/docs/Dockerfile index 08214dd..5997fe6 100644 --- a/docs/Dockerfile +++ b/docs/Dockerfile @@ -11,8 +11,8 @@ WORKDIR /docs # Layered cache: package.json + lockfile меняются реже чем content. COPY package.json pnpm-lock.yaml ./ -RUN corepack enable \ - && corepack prepare pnpm@9.0.0 --activate \ +# npm install pnpm — corepack может hang в CI на integrity check / TTY prompts. +RUN npm install -g --silent pnpm@9.15.4 \ && pnpm install --frozen-lockfile # Copy остальное (toc, .yfm, markdown). diff --git a/ordinis-admin-ui/Dockerfile b/ordinis-admin-ui/Dockerfile index 7e3a988..0701faf 100644 --- a/ordinis-admin-ui/Dockerfile +++ b/ordinis-admin-ui/Dockerfile @@ -3,12 +3,13 @@ WORKDIR /app # .npmrc нужен ДО pnpm install, иначе @nstart/* резолвятся в public npm и 404. # pnpm-lock.yaml — для воспроизводимости (frozen lockfile в CI). COPY package.json pnpm-lock.yaml .npmrc ./ -# 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 +# Pin pnpm@9.15.4 — exact version для reproducibility + lockfile compat +# (pnpm-lock.yaml lockfileVersion: '9.0'). +# - corepack может hang в CI на integrity-check / non-TTY prompts. npm +# install --silent надёжнее. +# - v10+ блокирует postinstall scripts ("Run pnpm approve-builds..."), в CI +# нет интерактивного prompt'а → exit 1. v9 keeps старое поведение. +RUN npm install -g --silent pnpm@9.15.4 RUN --mount=type=cache,target=/root/.local/share/pnpm/store pnpm install --frozen-lockfile COPY . . RUN pnpm build