instruction: Create a Dockerfile for Node.js with production best practices
output: ```dockerfile
  from ever exceeding the limit). Different
  runtimes can have different ways to implement the same restrictions.
  Note:If you specify a limit for a resource, but do not specify any request, and no admission-time
  mechanism has applied a default request for that resource, then Kubernetes copies the limit
  you specified and uses it as the requested value for the resource.
  Resource types
  CPU and memory are each a resource type. A resource type has a base unit.
  CPU represents compute processing and is specified in units of Kubernetes CPUs.
  Memory is specified in units of bytes.
  For Linux workloads, you can specify huge page resources.
  Huge pages are a Linux-specific feature where the node kernel allocates blocks of memory
  that are much larger than the default page size.
  For example, on a system where the default page size is 4KiB, you could specify a limit,
  hugepages-2Mi: 80Mi. If the container tries allocating over 40 2MiB huge pages (a
  total of 80 MiB), that allocation fails.
  Note:You cannot overcommit hugepages-* resources.
  This is different
  ```