金色时刻 · 15:48
让好资源,触手可及
AGENT SKILL

deployment

deployment 是面向开发运维的 Agent Skill,来自 HoangNguyen0403/agent-skills-standard。查看技能说明、操作步骤与使用约定,并通过原项目了解详细用法。

Docker builds, Memory tuning, and Graceful shutdown.

SKILL.md

下载 MD ↓
nameNestJS Deployment
descriptionDocker builds, Memory tuning, and Graceful shutdown.
metadata{"labels": ["nestjs", "deployment", "docker", "k8s"], "triggers": {"files": ["Dockerfile", "k8s/**", "helm/**"], "keywords": ["Dockerfile", "max-old-space-size", "shutdown hooks"]}}

Deployment & Ops Standards

Priority: P1 (OPERATIONAL)

Docker optimization and production deployment standards for NestJS applications.

Docker Optimization

  • Multi-Stage Builds: Mandatory. 1. Build Stage: Install devDependencies, build NestJS (nest build). 2. Run Stage: Copy only dist and node_modules (pruned), use node:alpine.
  • Security: Do not run as root.
  • Dockerfile: USER node.

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.

Init Patterns

  • Database Migrations:
  • Anti-Pattern: Running migration in main.ts on startup.
  • Pro Pattern: Use an Init Container in Kubernetes that runs npm run typeorm:migration:run before the app container starts.

来源:HoangNguyen0403/agent-skills-standard · MIT 许可 · 许可原文 · MD 为来源页保存的历史版本