FROM node:24-alpine AS builder WORKDIR /usr/src/app # Install build dependencies for sqlite3 RUN apk add --no-cache python3 make g++ sqlite-dev COPY package*.json ./ RUN npm ci COPY . . FROM node:24-alpine WORKDIR /usr/src/app # Install runtime dependencies for sqlite3 RUN apk add --no-cache sqlite-libs python3 make g++ sqlite-dev # Create a non-root user RUN addgroup -S appgroup && adduser -S appuser -G appgroup COPY --from=builder /usr/src/app/package*.json ./ COPY --from=builder /usr/src/app/ ./ # Rebuild sqlite3 for the target architecture RUN npm rebuild sqlite3 # Set ownership to non-root user RUN chown -R appuser:appgroup /usr/src/app USER appuser EXPOSE 3000 CMD ["node", "server.js"]