instruction: Create a Dockerfile for Node.js with production best practices
output: ```dockerfile
  from all containers and also the Pod's emptyDir
  volumes exceeds the overall Pod storage limit, then the kubelet also marks the Pod
  for eviction.Caution:If the kubelet is not measuring local ephemeral storage, then a Pod
  that exceeds its local storage limit will not be evicted for breaching
  local storage resource limits.However, if the filesystem space for writeable container layers, node-level logs,
  or emptyDir volumes falls low, the node
  taints itself as short on local storage
  and this taint triggers eviction for any Pods that don't specifically tolerate the taint.See the supported configurations
  for ephemeral local storage.The kubelet supports different ways to measure Pod storage use:Periodic scanningFilesystem project quotaThe kubelet performs regular, scheduled checks that scan each
  emptyDir volume, container log directory, and writeable container layer.The scan measures how much space is used.Note:In this mode, the kubelet does not track open file descriptors
  for deleted files.If you (or a container) create a file inside an emptyDir volume,
  something then opens that file, and you delete the file while it is
  still open, then the inode for the deleted file stays until you close
  that file but the kubelet does not categorize the space as in use.FEATURE STATE:
  Kubernetes v1.31 [beta] (enabled by default: false)Project quotas are an operating-system level feature for managing
  storage use on filesystems. With Kubernetes, you can enable project
  quotas for monitoring storage use. Make sure that the filesystem
  backing the emptyDir volumes, on the node, provides project quota support.
  For example, XFS and ext4fs offer project quotas.Note:Project quotas let you monitor storage use; they do not enforce limits.Kubernetes uses project IDs starting
  ```