pdf-parse@2.4.5 depends on @napi-rs/canvas (native Skia binary compiled with AVX instructions) which crashes with SIGILL on the Synology NAS CPU. Version 1.1.1 is pure JavaScript and works on any architecture.
37 lines
957 B
Docker
37 lines
957 B
Docker
FROM node:20-alpine AS deps
|
|
WORKDIR /app
|
|
|
|
COPY package.json package-lock.json* ./
|
|
COPY shared ./shared
|
|
COPY backend ./backend
|
|
|
|
# Увеличенные таймауты для нестабильной сети
|
|
RUN npm config set fetch-retry-mintimeout 20000 && \
|
|
npm config set fetch-retry-maxtimeout 120000 && \
|
|
npm config set fetch-timeout 300000
|
|
|
|
RUN npm install
|
|
|
|
FROM node:20-alpine AS build
|
|
WORKDIR /app
|
|
|
|
COPY --from=deps /app/node_modules ./node_modules
|
|
COPY --from=deps /app/package.json ./
|
|
COPY --from=deps /app/shared ./shared
|
|
COPY --from=deps /app/backend ./backend
|
|
|
|
RUN npm run build -w @family-budget/shared
|
|
RUN npm run build -w @family-budget/backend
|
|
|
|
FROM node:20-alpine AS runner
|
|
WORKDIR /app
|
|
ENV NODE_ENV=production
|
|
|
|
COPY --from=build /app/backend/dist ./dist
|
|
COPY --from=build /app/backend/package.json ./package.json
|
|
COPY --from=build /app/node_modules ./node_modules
|
|
COPY backend/.env .env
|
|
|
|
EXPOSE 3000
|
|
CMD ["node","dist/app.js"]
|