# Multi-stage build for ARM compatibility (Raspberry Pi) FROM oven/bun:1-alpine AS builder WORKDIR /app # Copy package files COPY package*.json ./ # Install dependencies RUN bun install --frozen-lockfile --production # Copy source code COPY . . # --- Production stage --- FROM oven/bun:1-alpine # Install curl for health checks and other utilities RUN apk add --no-cache curl wget WORKDIR /app # Copy dependencies from builder COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app . # Create uploads directory RUN mkdir -p uploads # Expose port EXPOSE 5000 # Health check HEALTHCHECK --interval=30s --timeout=3s --start-period=40s \ CMD bun -e "fetch('http://localhost:5000/api/health').then(r=>process.exit(r.ok?0:1))" # Start server CMD ["bun", "server.js"]