# Stage 1: Build
  FROM node:20-alpine AS builder
  WORKDIR /app
  COPY package*.json ./
  RUN npm ci
  COPY . .
  RUN npm run build

  # Stage 2: Runtime
  FROM node:20-alpine AS runtime

  RUN addgroup -g 1001 -S nodejs && adduser -S nextjs -u 1001

  WORKDIR /app

  COPY package*.json ./

  RUN npm ci --only=production && npm cache clean --force

  COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next
  COPY --from=builder --chown=nextjs:nodejs /app/public ./public
  COPY --chown=nextjs:nodejs entrypoint.sh /entrypoint.sh

  RUN chmod +x /entrypoint.sh && mkdir -p /app/public

  USER nextjs

  EXPOSE 3000
  
  ENTRYPOINT ["/entrypoint.sh"]
  CMD ["npm", "start"]