FROM node:20-alpine WORKDIR /app # Install pnpm RUN npm install -g pnpm # Add a non-root user RUN addgroup -g 1001 -S nodejs && \ adduser -S nextjs -u 1001 # Copy package files COPY package.json pnpm-lock.yaml ./ # Install dependencies with cache optimization RUN --mount=type=cache,target=/root/.local/share/pnpm/store \ pnpm install --frozen-lockfile # Switch to non-root user USER nextjs # Copy source code COPY --chown=nextjs:nodejs . . # Expose port EXPOSE 3000 # Start development server CMD ["pnpm", "dev"]