Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Docker Documentation25টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • Containerization
  • Architecture
  • Installation
  • Images
  • Containers
  • Dockerfile
  • Volumes
  • Networks
  • Docker Compose
  • Environment Variables
  • Node.js + Docker
  • Next.js + Docker
  • Express.js + Docker
  • NestJS + Docker
  • Databases + Docker
  • Development Workflow
  • Production
  • Multi-stage Builds
  • Security
  • Optimization
  • CI/CD
  • Deployment
  • Real-world Project
  • Interview Questions
  1. Docs
  2. Docker
  3. Image Size ও Build Optimization
DockerAdvanced

Image Size ও Build Optimization

ছোট image, layer caching, .dockerignore, BuildKit — দ্রুত ও হালকা build — বাংলায়।

15টি অংশবাংলা ভাষায়

প্রোডাকশন dock-এ image যত ছোট, deploy তত দ্রুত, ঠিক তেমন security তত ভালো। optimization-এর মূল কৌশলগুলো জানি।

১. .dockerignore

.dockerignoretext
text
node_modules
.next
dist
.git
.env
.env.*
*.log
Dockerfile
.dockerignore
README.md

২. Layer ordering ও caching

সঠিক orderdockerfile
dockerfile
# ভুল — কোড আগে → প্রতি build-এ install আবার
COPY . .
RUN npm ci

# সঠিক — dependency স্থিতিশীল, পরে code
COPY package*.json ./
RUN npm ci
COPY . .

৩. হালকা base image

Slim/alpinedockerfile
dockerfile
FROM node:20-alpine          # ~50MB
# vs node:20 (800MB+), node:20-slim (~250MB)
# distroless: শুধু runtime

৪. Multi-stage + production deps

প্রোডাকশন deps আলাদাdockerfile
dockerfile
# builder
FROM node:20-alpine AS builder
...
RUN npm ci && npm run build

# runtime — devDependencies ছাড়া
FROM node:20-alpine
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/dist ./dist

৫. BuildKit ও আরও

BuildKit flagsbash
bash
# BuildKit default (Docker 23+) — parallel stage, mount cache
DOCKER_BUILDKIT=1 docker build -t my-api .

# registry cache — uniform across machines
docker build --cache-from type=registry,ref=my-api:cache .
cache mount (npm)dockerfile
dockerfile
RUN --mount=type=cache,target=/root/.npm \
    npm ci --omit=dev

Size যাচাই

Inspectbash
bash
docker image ls
docker history my-api
docker system df
লক্ষ্য

Node/Express API-এর production image 100-150MB-এর নিচে রাখা যায় (slim/base) — distroless-এ আরও কম। মাঝে ছোট ছোটWin আসলে okay, কিন্তু ভারী না।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরDocker Security Best PracticesপরেরCI/CD Pipeline-এ Docker
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com