# --- Stage 1: Build --- FROM node:20-alpine AS builder WORKDIR /app COPY package.json package-lock.json* bun.lock* ./ RUN npm install COPY . . RUN npm run build # --- Stage 2: Runner --- FROM node:20-alpine AS runner WORKDIR /app ENV NODE_ENV=production ENV PORT=3000 COPY package.json package-lock.json* bun.lock* ./ RUN npm install --only=production COPY --from=builder /app/dist ./dist # Create data directory and set permissions RUN mkdir -p /app/data && chmod 777 /app/data EXPOSE 3000 CMD ["node", "dist/server.cjs"]