From c4e5a532a143370b660d9c54196b15da80b1a3a2 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 30 Aug 2026 11:46:09 +0300 Subject: [PATCH] =?UTF-8?q?fix(docker):=20=D1=81=D0=BE=D0=B1=D0=B8=D1=80?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=20bcrypt=20=D0=B8=D0=B7=20=D0=B8=D1=81=D1=85?= =?UTF-8?q?=D0=BE=D0=B4=D0=BD=D0=B8=D0=BA=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Готовый бинарник с github внутри сборки не скачивается — запрос к release-assets обрывается, и node-pre-gyp уходит в компиляцию, а в node:20-alpine нет python3/make/g++. Ставим их временно в обеих стадиях и сносим вместе с кэшем node-gyp, образ остаётся ~260 МБ. --- Dockerfile | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c9425a4..7664f7b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,6 +15,11 @@ RUN npm run build # ===================================================== FROM node:20-alpine AS backend-build +# bcrypt — нативный модуль. Готовый бинарник с github внутри сборки не +# скачивается (запрос к release-assets обрывается), поэтому собираем из +# исходников: для этого нужны python3/make/g++. +RUN apk add --no-cache python3 make g++ + WORKDIR /app/backend COPY backend/package.json backend/package-lock.json* ./ RUN npm install @@ -33,7 +38,12 @@ WORKDIR /app # Backend production deps COPY backend/package.json backend/package-lock.json* ./backend/ -RUN cd backend && npm install --omit=dev +# То же самое для боевых зависимостей: компилятор ставим временно и сносим +# сразу после установки, чтобы не тащить его в итоговый образ. +RUN apk add --no-cache --virtual .build-deps python3 make g++ \ + && cd backend && npm install --omit=dev \ + && apk del .build-deps \ + && rm -rf /root/.cache # Built backend COPY --from=backend-build /app/backend/dist ./backend/dist