Configuration
Dockerfile optionsFramework
Configuration
Optimizations
Multi-Stage Build
Smaller production image
Non-Root User
Run as non-privileged user (security)
Health Check
Docker health check endpoint
Environment Variables
Generated Output
Real-time previewLive
Dockerfile
27 lines1# โโโ Stage 1: Dependencies โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
2FROM node:20-alpine AS deps
3WORKDIR /app
4COPY package*.json ./
5RUN npm ci
6
7# โโโ Stage 2: Builder โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
8FROM node:20-alpine AS builder
9WORKDIR /app
10COPY /app/node_modules ./node_modules
11COPY . .
12RUN npm run build
13
14# โโโ Stage 3: Runner โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
15FROM node:20-alpine AS runner
16WORKDIR /app
17ENV NODE_ENV=production
18RUN addgroup --system --gid 1001 appgroup && \
19 adduser --system --uid 1001 --ingroup appgroup appuser
20
21COPY /app/node_modules ./node_modules
22COPY /app/package.json ./package.json
23
24USER appuser
25
26EXPOSE 3000
27CMD ["node server.js"]