nestjs-deployment
Docker builds, Memory tuning, and Graceful shutdown.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Deployment & Ops Standards
Priority: P1 (OPERATIONAL)
Docker optimization and production deployment standards for NestJS applications.
Docker Optimization
-
Multi-Stage Builds: Mandatory.
-
Build Stage: Install
devDependencies, build NestJS (nest build). -
Run Stage: Copy only
distandnode_modules(pruned), usenode:alpine.
-
Build Stage: Install
-
Security: Do not run as
root.-
Dockerfile:
USER node.
-
Dockerfile:
Runtime Tuning (Node.js)
-
Memory Config: Container memory != Node memory.
- Rule: Explicitly set Max Old Space.
-
Command:
node --max-old-space-size=XXX dist/main - Calculation: Set to ~75-80% of Kubernetes Limit. (Limit: 1GB -> OldSpace: 800MB).
-
Graceful Shutdown:
-
Signal: Listen to
SIGTERM. -
NestJS:
app.enableShutdownHooks()is mandatory. - Sleep: Add a "Pre-Stop" sleep in K8s (5-10s) to allow Load Balancer to drain connections before Node process stops accepting traffic.
-
Signal: Listen to
Init Patterns
-
Database Migrations:
-
Anti-Pattern: Running migration in
main.tson startup. -
Pro Pattern: Use an Init Container in Kubernetes that runs
npm run typeorm:migration:runbefore the app container starts.
-
Anti-Pattern: Running migration in
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!