FROM node:20-alpine # Set working directory WORKDIR /app # Update Alpine packages and npm to fix security vulnerabilities RUN apk upgrade --no-cache && \ npm install -g npm@latest # Install Curl RUN apk add --no-cache curl # Copy package files COPY package*.json ./ # Install dependencies RUN npm ci --omit=dev # Copy source code COPY . . # Create non-root user RUN addgroup -g 1001 -S nodejs RUN adduser -S nodejs -u 1001 # Change ownership of the app directory RUN chown -R nodejs:nodejs /app USER nodejs # Expose port EXPOSE 8080 # Start the application CMD ["npm", "start"]