# Stage 1: Build FROM node:22-alpine AS builder RUN apk add --no-cache python3 make g++ WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci COPY prisma ./prisma RUN npx prisma generate COPY . . RUN npm run build # Stage 2: Production FROM node:22-alpine RUN apk add --no-cache python3 make g++ WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci --omit=dev COPY prisma ./prisma RUN npx prisma generate COPY --from=builder /app/build ./build COPY --from=builder /app/server.js ./server.js RUN apk del python3 make g++ && rm -rf /var/cache/apk/* RUN mkdir -p /app/uploads EXPOSE 3000 COPY docker-entrypoint.sh ./ RUN chmod +x docker-entrypoint.sh CMD ["./docker-entrypoint.sh"]