fix(ci): pnpm via npm install (skip corepack) — Dockerfile + build-docs job
Corepack может hang в CI runner на integrity-check либо non-TTY prompt при первом activate. Заменяем на прямой npm install с pinned version 9.15.4 (latest stable v9, lockfile compat: lockfileVersion '9.0'). Изменения: - ordinis-admin-ui/Dockerfile: corepack → npm install -g pnpm@9.15.4 - docs/Dockerfile: same swap - .gitlab-ci.yml build-docs: same swap Verified locally: docker build ordinis-admin-ui за 23 sec, no hang.
This commit is contained in:
+2
-2
@@ -126,8 +126,8 @@ build-docs:
|
|||||||
stage: build
|
stage: build
|
||||||
image: repo.nstart.cloud/library/node:20-alpine
|
image: repo.nstart.cloud/library/node:20-alpine
|
||||||
before_script:
|
before_script:
|
||||||
- corepack enable
|
# npm install pnpm — corepack может hang на CI runner integrity checks.
|
||||||
- corepack prepare pnpm@9.0.0 --activate
|
- npm install -g --silent pnpm@9.15.4
|
||||||
script:
|
script:
|
||||||
- cd docs
|
- cd docs
|
||||||
- pnpm install --frozen-lockfile
|
- pnpm install --frozen-lockfile
|
||||||
|
|||||||
+2
-2
@@ -11,8 +11,8 @@ WORKDIR /docs
|
|||||||
|
|
||||||
# Layered cache: package.json + lockfile меняются реже чем content.
|
# Layered cache: package.json + lockfile меняются реже чем content.
|
||||||
COPY package.json pnpm-lock.yaml ./
|
COPY package.json pnpm-lock.yaml ./
|
||||||
RUN corepack enable \
|
# npm install pnpm — corepack может hang в CI на integrity check / TTY prompts.
|
||||||
&& corepack prepare pnpm@9.0.0 --activate \
|
RUN npm install -g --silent pnpm@9.15.4 \
|
||||||
&& pnpm install --frozen-lockfile
|
&& pnpm install --frozen-lockfile
|
||||||
|
|
||||||
# Copy остальное (toc, .yfm, markdown).
|
# Copy остальное (toc, .yfm, markdown).
|
||||||
|
|||||||
@@ -3,12 +3,13 @@ WORKDIR /app
|
|||||||
# .npmrc нужен ДО pnpm install, иначе @nstart/* резолвятся в public npm и 404.
|
# .npmrc нужен ДО pnpm install, иначе @nstart/* резолвятся в public npm и 404.
|
||||||
# pnpm-lock.yaml — для воспроизводимости (frozen lockfile в CI).
|
# pnpm-lock.yaml — для воспроизводимости (frozen lockfile в CI).
|
||||||
COPY package.json pnpm-lock.yaml .npmrc ./
|
COPY package.json pnpm-lock.yaml .npmrc ./
|
||||||
# Pin pnpm@9 — v10+ блокирует postinstall scripts по умолчанию ("Run pnpm
|
# Pin pnpm@9.15.4 — exact version для reproducibility + lockfile compat
|
||||||
# approve-builds to pick which dependencies should be allowed"). В CI
|
# (pnpm-lock.yaml lockfileVersion: '9.0').
|
||||||
# интерактивного prompt'а нет → exit 1. v9 keeps старое поведение либо
|
# - corepack может hang в CI на integrity-check / non-TTY prompts. npm
|
||||||
# прокидывает --config.dangerouslyAllowAllBuilds; v9 проще и совместимо
|
# install --silent надёжнее.
|
||||||
# с lockfile'ом (lockfile v9.0).
|
# - v10+ блокирует postinstall scripts ("Run pnpm approve-builds..."), в CI
|
||||||
RUN corepack enable && corepack prepare pnpm@9 --activate
|
# нет интерактивного 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
|
RUN --mount=type=cache,target=/root/.local/share/pnpm/store pnpm install --frozen-lockfile
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN pnpm build
|
RUN pnpm build
|
||||||
|
|||||||
Reference in New Issue
Block a user