DockerIntermediate
Node.js অ্যাপ Docker-এ
Node.js application-এর জন্য Dockerfile, সেরা base image ও development setup — বাংলায়।
12টি অংশবাংলা ভাষায়
একটি সাধারণ Node.js REST API-কে Docker-এ চালানো শিখি — সঠিক base image, dependency caching ও স্ক্রিপ্টসহ।
Base image বাছাই
| Image | ব্যবহার |
|---|---|
node:latest | ডেভেলপমেন্ট — সবকিছু আরও relaxed |
node:20-slim | production-এর জন্য ভারসাম্য — হালকা ও maintained |
node:20-alpine | সবচেয়ে ছোট — কিছু native dependency-তে সমস্যা হতে পারে |
প্রোডাকশন-ready Dockerfile
Dockerfiledockerfile
dockerfile
FROM node:20-slim
WORKDIR /app
# প্রথমে dependency files — cache-কে কাজে লাগান
COPY package*.json ./
RUN npm ci --omit=dev
# তারপর app code
COPY . .
ENV NODE_ENV=production
EXPOSE 3000
# non-root user (সুরক্ষার জন্য)
USER node
CMD ["node", "src/server.js"]npm ci কেন
npm install এর বদলে `npm ci` ব্যবহার করুন — lockfile (package-lock.json)-এর সাথে হুবহু dependency install করে, দ্রুত ও reproducible। CI/CD ও Docker-এ এটি best practice।
Build ও run
Run stepsbash
bash
docker build -t my-api .
docker run -d \
-p 3000:3000 \
-e DATABASE_URL=mongodb://127.0.0.1:27017/app \
--name api \
my-api
curl http://localhost:3000/api/healthDevelopment mode
Hot reload সহ devbash
bash
# nodemon + bind mount + env staging
docker run -d \
-p 3000:3000 \
-v "${PWD}:/app" \
-v /app/node_modules \
-e NODE_ENV=development \
--name api-dev \
my-api
docker logs -f api-devAnonymous volume
-v /app/node_modules লেখলে folder-টি container-এর original node_modules-এ ঢাকা থাকে — host-এ node_modules না থাকলেও ঠিকঠাক চলে (Windows-এ file system পার্থক্যের জন্য দরকারি)।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।