🏭
Dockerfile Deep Dive

Multi-Stage Builds

Smaller Production Images
💡 Multi-stage, build, EK, FACTORY, ASSEMBLY, LINE, jaisa, hai — PEHLE, STAGE, mein, HEAVY, MACHINERY, se, RAW, MATERIAL, PROCESS, hota, hai, aur, SIRF, FINAL, FINISHED, PRODUCT, hi, NEXT, STAGE, mein, PACK, karke, BHEJA, jaata hai — HEAVY, MACHINERY, SHIP, nahi, hoti.

Multi-stage, builds, mein, EK, SE, ZYAADA, "FROM" INSTRUCTIONS, hoti, HAIN — HAR, EK, EK, "STAGE" hai. PEHLE, STAGE, mein, BUILD, TOOLS, (compiler, npm, waghera) use, karke, APP, COMPILE/BUILD, kiya, jaata hai.

FINAL, STAGE, EK, FRESH, SMALL, BASE, IMAGE, se, SHURU, hoti, hai, aur, "COPY --from=" ke, zariye, sirf, FINAL, BUILD, OUTPUT, ko, PEHLE, STAGE, se, COPY, kiya, jaata, hai — COMPILER, source, code, aur, BUILD, TOOLS, FINAL, IMAGE, mein, INCLUDE, nahi, hote, ISSE, IMAGE, SIZE, BAHUT, CHOTI, ho, jaati, hai.

# Stage 1: Build
FROM node:20 AS builder
WORKDIR /app
COPY . .
RUN npm install && npm run build

# Stage 2: Production (chota, clean image)
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
CMD ["node", "dist/server.js"]
🏭
Multi-stage, build, EK, FACTORY, ASSEMBLY, LINE, jaisa, hai — PEHLE, STAGE, mein, HEAVY, MACHINERY, se, RAW, MATERIAL, PROCESS, hota, hai, aur, SIRF, FINAL, FINISHED, PRODUCT, hi, NEXT, STAGE, mein, PACK, karke, BHEJA, jaata hai — HEAVY, MACHINERY, SHIP, nahi, hoti.
1 / 2
⚡ Quick Recap
  • Multiple FROM instructions = multiple stages, har ek naam ke saath
  • COPY --from= se sirf zaroori output next stage mein copy hota hai
  • Build tools aur source code final image mein include nahi hote, size chota
On this page (2 subtopics)

"FROM ... AS stage-name" se, STAGE, ko, EK, NAAM, diya, ja, sakta hai, JISE, BAAD, mein, "COPY --from=stage-name" ya, "FROM stage-name" (nayi, stages, ke, base, ke, roop, mein) REFERENCE, kiya, ja, sakta hai.

FROM golang:1.22 AS builder
WORKDIR /src
COPY . .
RUN go build -o app .

FROM scratch
COPY --from=builder /src/app /app
ENTRYPOINT ["/app"]

"--target" flag, se, "docker build" ko, batao, ki, sirf, EK, SPECIFIC, STAGE, tak, hi, BUILD, karna, hai — YE, USEFUL, hai, agar, TUMHARI, TESTING/DEVELOPMENT, stage, ALAG, hai, PRODUCTION, stage, se.

docker build --target builder -t myapp:dev .
docker build --target production -t myapp:prod .