Day 88 Docker Basics
Docker apps ko containers mein package karta hai — same environment har jagah. 'Works on my machine' problem khatam! Node.js app Docker mein run karna production deployment standard hai.
Dockerfile for Node.js
Node.js app containerize karo.
# Base image
FROM node:20-alpine
# Working directory set karo
WORKDIR /app
# Dependencies copy karo pehle (caching ke liye)
COPY package*.json ./
RUN npm ci --only=production
# App code copy karo
COPY . .
# Non-root user (security)
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
USER appuser
# Port expose karo
EXPOSE 3000
# App start karo
CMD ["node", "src/app.js"]
Docker Compose
Multi-container setup with docker-compose.
version: "3.8"
services:
api:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=development
- MONGODB_URI=mongodb://mongo:27017/myapp
- JWT_SECRET=supersecret
depends_on:
- mongo
volumes:
- .:/app
- /app/node_modules
mongo:
image: mongo:7
ports:
- "27017:27017"
volumes:
- mongo-data:/data/db
volumes:
mongo-data:
# Commands:
# docker-compose up — start karo
# docker-compose down — stop karo
# docker-compose logs -f — logs dekho
🎯 Practice Challenge
Express + MongoDB app ko Docker mein run karo. docker-compose se ek command mein sab start ho.