feat(node): add production-ready Node.js Dockerfile templates with pnpm

- Multi-stage build with Node.js 22 slim base
- PNPM package manager via corepack (2x faster than npm)
- Build cache mounts for fast rebuilds
- Non-root user (appuser:1000) for security
- Health check using native fetch API
- Alpine variant for size optimization (~130MB)
- Distroless variant for maximum security (~110MB)
- Comprehensive .dockerignore for clean builds
- Full documentation with framework-specific guidance
This commit is contained in:
Greg Hendrickson
2026-02-07 18:04:24 +00:00
parent 8e8ae27640
commit df5ea66906
5 changed files with 510 additions and 0 deletions

72
node/.dockerignore Normal file
View File

@@ -0,0 +1,72 @@
# =============================================================================
# .dockerignore - Exclude files from Docker build context
# =============================================================================
# Dependencies (always reinstall in container)
node_modules/
.pnpm-store/
# Build output (rebuilt in container)
dist/
build/
.next/
.nuxt/
.output/
# Development
*.log
npm-debug.log*
pnpm-debug.log*
yarn-debug.log*
yarn-error.log*
# Testing
coverage/
.nyc_output/
*.test.js
*.spec.js
__tests__/
__mocks__/
# TypeScript cache
*.tsbuildinfo
tsconfig.tsbuildinfo
# Environment files (use runtime secrets)
.env
.env.*
!.env.example
# IDE / Editor
.idea/
.vscode/
*.swp
*.swo
*~
# Git
.git/
.gitignore
.gitattributes
# Docker
Dockerfile*
docker-compose*.yml
.dockerignore
# CI/CD
.github/
.gitlab-ci.yml
.travis.yml
Jenkinsfile
# Documentation
*.md
!README.md
docs/
LICENSE
# Misc
.DS_Store
Thumbs.db
*.tmp