instruction: Create a Dockerfile for Node.js with production best practices
output: ```dockerfile
  from newly not-matching nodes.You can modify the Pods that a DaemonSet creates. However, Pods do not allow all
  fields to be updated. Also, the DaemonSet controller will use the original template the next
  time a node (even with the same name) is created.You can delete a DaemonSet. If you specify --cascade=orphan with kubectl, then the Pods
  will be left on the nodes. If you subsequently create a new DaemonSet with the same selector,
  the new DaemonSet adopts the existing Pods. If any Pods need replacing the DaemonSet replaces
  them according to its updateStrategy.You can perform a rolling update on a DaemonSet.Alternatives to DaemonSetInit scriptsIt is certainly possible to run daemon processes by directly starting them on a node (e.g. using
  init, upstartd, or systemd). This is perfectly fine. However, there are several advantages to
  running such processes via a DaemonSet:Ability to monitor and manage logs for daemons in the same way as applications.Same config language and tools (e.g. Pod templates, kubectl) for daemons and applications.Running daemons in containers with resource limits increases isolation between daemons
  ```