DockerIntermediate
Docker দিয়ে Development Workflow
Hot reload, bind mount, multi-container dev environment ও debug — বাংলায়।
11টি অংশবাংলা ভাষায়
ডেভেলপমেন্টে সবচেয়ে বড় সুবিধা — code বদলালে container-এ সাথে সাথে দেখা। এটি হয় bind mount + dev server-এর মাধ্যমে।
Dev compose — hot reload
docker-compose.dev.ymlyaml
yaml
services:
api:
build: .
command: npm run dev # nodemon / nest start --watch
volumes:
- ./src:/app/src # host code → container
- /app/node_modules # container-এর নিজ নতুন install সংরক্ষণ
environment:
- NODE_ENV=development
ports:
- "3000:3000"Run devbash
bash
docker compose -f docker-compose.dev.yml upProduction vs dev compose
- Dev-এ bind mount + dev server; prod-এ compiled code + start
- Dev-এ সমস্ত logs (
logs -f); prod-এ logging driver/aggregation - Compose file আলাদা রাখুন (
compose.dev.yml,compose.prod.yml)
Debugging workflow
Diagnose helperbash
bash
docker compose ps
docker compose logs -f api # শেষ logs
docker compose exec api sh # ভেতরে ঢোঁকা
docker exec api env # variables check
docker exec api node -e "console.log(process.env.DATABASE_URL)"
docker inspect api # network/port/detailsDatabase seeding ও tools
Seed containeryaml
yaml
services:
mongo:
image: mongo:7
seed:
build: ./seed # ছোট script
depends_on:
- mongo
environment:
- MONGODB_URI=mongodb://mongo:27017/blog
restart: "no" # একবার চালিয়ে থামেডেবাগ involve
VS Code-এ Docker extension-র সাহায্যে container-এর সাথে ব্রেকপয়েন্ট কাজ করা যায়। আরেকটি জনপ্রিয় কৌশল — app-টিকে --inspect flag-এ চালিয়ে DevTools দিয়ে attach।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।