fix(docker): собирать bcrypt из исходников
Готовый бинарник с github внутри сборки не скачивается — запрос к release-assets обрывается, и node-pre-gyp уходит в компиляцию, а в node:20-alpine нет python3/make/g++. Ставим их временно в обеих стадиях и сносим вместе с кэшем node-gyp, образ остаётся ~260 МБ.
This commit is contained in:
+11
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user