DockerIntermediate
Express.js অ্যাপ Docker-এ
Express API ডকারাইজেশন, MongoDB-সহ compose setup ও health endpoint — বাংলায়।
10টি অংশবাংলা ভাষায়
Express-এর Dockerfile Node.js-এর মতোই, তবে এখানে স্কেল জন্য ডাবল-purpose (dev/production script) setup দেখি — আর সাথে MongoDB-এর compose।
Dockerfile
Dockerfiledockerfile
dockerfile
FROM node:20-slim
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
ENV NODE_ENV=production
EXPOSE 5000
USER node
CMD ["node", "src/index.js"]Express с MongoDB compose
compose.ymlyaml
yaml
services:
api:
build: .
ports:
- "5000:5000"
environment:
- NODE_ENV=production
- PORT=5000
- MONGODB_URI=mongodb://mongo:27017/blog
depends_on:
- mongo
mongo:
image: mongo:7
volumes:
- mongo-data:/data/db
volumes:
mongo-data:Health endpoint
src/index.jsjs
js
const express = require("express");
const mongoose = require("mongoose");
const app = express();
const PORT = process.env.PORT || 5000;
app.get("/health", (_req, res) => {
const dbState = mongoose.connection.readyState === 1;
res.status(dbState ? 200 : 503).json({
uptime: process.uptime(),
db: dbState ? "connected" : "disconnected",
});
});
app.listen(PORT, () =>
console.log("Server চলছে: http://localhost:" + PORT),
);Build ও run
Run stepsbash
bash
docker compose up -d --build
docker compose ps
curl http://localhost:5000/healthstartup order
MongoDB container start করতে maunted সময় লাগে — API-যেভাবে appear. Mongoose serverSelectionTimeoutMS বাড়িয়ে রাখুন যাতে retry করে।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।