पाठ 27 / 34
Docker Integration
Multi-stage Dockerfile से NestJS को containerize करें और Docker Compose से database के साथ चलाएँ।
Dockerfile
Multi-stage build: एक stage में compile करें, lightweight stage में run करें।
FROM node:22-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY --from=builder /app/dist ./dist
EXPOSE 3000
CMD ["node", "dist/main.js"]docker-compose
एक ही command से NestJS + database को spin up करें।
services:
app:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgres://user:password@db:5432/mydb
depends_on:
- db
db:
image: postgres:16
environment:
- POSTGRES_DB=mydb
- POSTGRES_PASSWORD=passwordत्वरित जाँच
त्वरित जाँच: Nest app के लिए multi-stage Dockerfile क्यों?
- दो servers चलाने के लिए
- एक stage में TypeScript compile करके सिर्फ़ dist और prod dependencies भेजने के लिए
- Node की ज़रूरत हटाने के लिए
Answer
एक stage में TypeScript compile करके सिर्फ़ dist और prod dependencies भेजने के लिए — final image में devDependencies और sources नहीं होते, इसलिए छोटी होती है।