Files
abumahid 0f7af70b90 ♻️ refactor(account, order, plan, profile, support, email): restructure application modules and enhance error handling
Updated Docker configuration, refactored middleware for improved error handling, and restructured account, order, plan, profile, and support modules, including their routes, services, and validations. Enhanced email processing queues and utilities for token generation, pagination, and response management to streamline the application architecture and enhance maintainability.
2026-04-21 03:12:39 +06:00

42 lines
819 B
Docker

# ---------- BUILD STAGE ----------
FROM node:20-alpine AS builder
WORKDIR /app
# Only install deps first (cache friendly)
COPY package*.json ./
RUN npm ci
# Copy source
COPY . .
# Generate prisma + build
RUN npx prisma generate
RUN npm run build
# ---------- PRODUCTION STAGE ----------
FROM node:20-alpine
WORKDIR /app
ENV NODE_ENV=production
# Only install production deps
COPY package*.json ./
RUN npm ci --omit=dev && npm cache clean --force
# Copy Prisma generated client + schema
COPY --from=builder /app/node_modules/.prisma ./node_modules/.prisma
COPY --from=builder /app/node_modules/@prisma ./node_modules/@prisma
COPY --from=builder /app/prisma ./prisma
# Copy built app
COPY --from=builder /app/dist ./dist
# Uploads folder
RUN mkdir -p /app/uploads
EXPOSE 5000
CMD ["node", "dist/server.js"]