Files
mdm-ordinis/ordinis-admin-ui/Dockerfile
T
Zimin A.N. a73d0d31aa fix(admin-ui): pin pnpm@9 в Dockerfile — обойти v10 postinstall block в CI
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.
2026-05-08 00:10:08 +03:00

26 lines
1.4 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FROM repo.nstart.cloud/library/node:22-alpine AS build
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
RUN --mount=type=cache,target=/root/.local/share/pnpm/store pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
FROM repo.nstart.cloud/library/nginx:1.27-alpine
COPY --from=build /app/dist /usr/share/nginx/html
# Шаблон обрабатывается официальным entrypoint nginx-image:
# /docker-entrypoint.d/20-envsubst-on-templates.sh пробегает по
# /etc/nginx/templates/*.template и envsubst'ит ENV vars в /etc/nginx/conf.d/.
COPY nginx.conf /etc/nginx/templates/default.conf.template
ENV NGINX_ENVSUBST_TEMPLATE_DIR=/etc/nginx/templates \
NGINX_ENVSUBST_TEMPLATE_SUFFIX=.template \
NGINX_ENVSUBST_OUTPUT_DIR=/etc/nginx/conf.d
EXPOSE 80