FROM node:20-alpine # Install build dependencies RUN apk add --no-cache make gcc g++ python3 # Create app directory WORKDIR /app # Copy all application files COPY . . # Remove existing node_modules (if any) RUN rm -rf node_modules # Install dependencies RUN npm ci # Build the application RUN npm run build # Rebuild bcrypt (if necessary) RUN npm rebuild bcrypt --build-from-source # Create the dist directory and set permissions RUN mkdir -p /app/dist && chown -R node:node /app # Switch to non-root user USER node # Expose the port the app runs on EXPOSE 7860 # Command to run the application CMD ["npm", "run", "start:dev"]