Fetch Browser

by TheSethRose
Verified
FROM node:18-alpine AS builder WORKDIR /app # Copy package files COPY package*.json tsconfig.json ./ # Install dependencies with caching RUN --mount=type=cache,target=/root/.npm npm install # Copy source code COPY . . # Build the application RUN npm run build FROM node:18-alpine AS release WORKDIR /app # Copy only the necessary files from builder COPY --from=builder /app/build /app/build COPY --from=builder /app/package*.json ./ # Set production environment ENV NODE_ENV=production # Install only production dependencies RUN npm ci --ignore-scripts --omit=dev # Set executable permissions RUN chmod +x build/index.js # Set the user to non-root USER node # Use ENTRYPOINT instead of CMD for better compatibility ENTRYPOINT ["node", "build/index.js"]