38 lines
1018 B
Docker
38 lines
1018 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 --from=build /app/backend/node_modules/ ./node_modules/
|
|
COPY backend/.env .env
|
|
|
|
EXPOSE 3000
|
|
CMD ["node","dist/app.js"]
|