FROM node:alpine # Install pnpm RUN npm install -g pnpm # Set the working directory WORKDIR /app # Copy package.json and pnpm-lock.yaml (if available) COPY package.json pnpm-lock.yaml* ./ # Install all dependencies, including dev dependencies RUN pnpm install --frozen-lockfile # Copy the rest of the application code COPY . . # Build the application RUN pnpm run build # Prune dev dependencies RUN pnpm prune --prod # Set correct permissions RUN chown -R node:node /app # Switch to non-root user USER node # Expose the port the app runs on EXPOSE 3000 # Start the application CMD ["node", "build"]