instruction: Create a Dockerfile for Node.js with production best practices
output: ```dockerfile
  from this subnet. You also need to set the DNS address used
  by the kubelet, using the --cluster-dns flag. This setting needs to be the same for every kubelet
  on every manager and Node in the cluster. The kubelet provides a versioned, structured API object
  that can configure most parameters in the kubelet and push out this configuration to each running
  kubelet in the cluster. This object is called
  KubeletConfiguration.
  The KubeletConfiguration allows the user to specify flags such as the cluster DNS IP addresses expressed as
  a list of values to a camelCased key, illustrated by the following example:apiVersion: kubelet.config.k8s.io/v1beta1
  kind: KubeletConfiguration
  clusterDNS:
  - 10.96.0.10
  For more details on the KubeletConfiguration have a look at this section.Providing instance-specific configuration detailsSome hosts require specific kubelet configurations due to differences in hardware, operating system,
  networking, or other host-specific parameters. The following list provides a few examples.The path to the DNS resolution file, as specified by the --resolv-conf kubelet
  configuration flag, may differ among operating systems, or depending on whether you are using
  systemd-resolved. If this path is wrong, DNS resolution will fail on the Node whose kubelet
  is configured incorrectly.The Node API object .metadata.name is set to the machine's hostname by default,
  unless you are using a cloud provider. You can use the --hostname-override flag to override the
  default behavior if you need to specify a Node name different
  ```