instruction: Create a Dockerfile for Node.js with production best practices
output: ```dockerfile
  from
  memory nodes 0, 1 and 2.CPU quota constraintThe --cpu-quota flag limits the container's CPU usage. The default 0 value
  allows the container to take 100% of a CPU resource (1 CPU). The CFS (Completely Fair
  Scheduler) handles resource allocation for executing processes and is default
  Linux Scheduler used by the kernel. Set this value to 50000 to limit the container
  to 50% of a CPU resource. For multiple CPUs, adjust the --cpu-quota as necessary.
  For more information, see the CFS documentation on bandwidth limiting.Block IO bandwidth (Blkio) constraintBy default, all containers get the same proportion of block IO bandwidth
  (blkio). This proportion is 500. To modify this proportion, change the
  container's blkio weight relative to the weighting of all other running
  containers using the --blkio-weight flag.
  NoteThe blkio weight setting is only available for direct IO. Buffered IO is not
  currently supported.The --blkio-weight flag can set the weighting to a value between 10 to 1000.
  For example, the commands below create two containers with different blkio
  weight:
  
  $ docker run -it --name c1 --blkio-weight 300 ubuntu:24.04 /bin/bash
  $ docker run -it --name c2 --blkio-weight 600 ubuntu:24.04 /bin/bash
  If you do block IO in the two containers at the same time, by, for example:
  
  $ time dd if=/mnt/zerofile of=test.out bs=1M count=1024 oflag=direct
  You'll find that the proportion of time is the same as the proportion of blkio
  weights of the two containers.The --blkio-weight-device="DEVICE_NAME:WEIGHT" flag sets a specific device weight.
  The DEVICE_NAME:WEIGHT is a string containing a colon-separated device name and weight.
  For example, to set /dev/sda device weight to 200:
  
  $ docker run -it \
   --blkio-weight-device "/dev/sda:200" \
   ubuntu
  If you specify both the --blkio-weight and --blkio-weight-device, Docker
  uses the --blkio-weight as the default weight and uses --blkio-weight-device
  to override this default with a new value on a specific device.
  The following example uses a default weight of 300 and overrides this default
  on /dev/sda setting that weight to 200:
  
  $ docker run -it \
   --blkio-weight 300 \
   --blkio-weight-device "/dev/sda:200" \
   ubuntu
  The --device-read-bps flag limits the read rate (bytes per second)
  ```