Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| # Stage 1: Build the application | |
| FROM node:22-alpine AS builder | |
| WORKDIR /app | |
| # Copy package files and install dependencies | |
| COPY package*.json ./ | |
| RUN npm ci | |
| # Copy application source | |
| COPY . . | |
| # Build the application | |
| RUN npm run build | |
| # Stage 2: Run the application | |
| FROM node:22-alpine AS production | |
| WORKDIR /app | |
| # Set to production environment | |
| ENV NODE_ENV=production | |
| # Copy only the necessary files from the builder stage | |
| COPY --from=builder /app/build ./build | |
| COPY --from=builder /app/package.json ./package.json | |
| COPY --from=builder /app/package-lock.json ./package-lock.json | |
| # Install only production dependencies | |
| RUN npm ci --omit=dev | |
| # Create a non-root user and switch to it | |
| RUN addgroup -g 1001 -S nodejs && \ | |
| adduser -S nodejs -u 1001 -G nodejs | |
| USER nodejs | |
| # Expose the port the app will run on | |
| EXPOSE 3000 | |
| # Define the command to run the application | |
| CMD ["node", "build/index.js"] |