instruction: Create a Dockerfile for Node.js with production best practices
output: ```dockerfile
  from remote context. docker/buildx#2560Packaging updatesCompose support has been updated to v2.1.3. docker/buildx#25470.15.12024-06-18The full release notes for this release are available
  on GitHub.Bug fixesFix missing build error and exit code for some validation requests with --check. docker/buildx#2518Update fallback image for --check to Dockerfile v1.8.1. docker/buildx#25380.15.02024-06-11The full release notes for this release are available
  on GitHub.NewNew --call option allows setting evaluation method for a build, replacing the previous experimental --print flag. docker/buildx#2498, docker/buildx#2487, docker/buildx#2513In addition to the default build method, the following methods are implemented by Dockerfile frontend:--call=check: Run validation routines for your build configuration. For more information about build checks, see
  Build checks--call=outline: Show configuration that would be used by current build, including all build arguments, secrets, SSH mounts, etc., that your build would use.--call=targets: Show all available targets and their descriptions.New --prefer-index flag has been added to the docker buildx imagetools create command to control the behavior of creating image out of one single-platform image manifest. docker/buildx#2482The
  kubernetes driver now supports a timeout option for configuring deployment timeout. docker/buildx#2492New metrics definitions have been added for build warning types. docker/buildx#2482, docker/buildx#2507The
  buildx prune and
  buildx du commands now support negative and prefix filters. docker/buildx#2473Building Compose files with Bake now supports passing SSH forwarding configuration. docker/buildx#2445Fix issue with configuring the kubernetes driver with custom TLS certificates. docker/buildx#2454Fix concurrent kubeconfig access when loading nodes. docker/buildx#2497Packaging updatesCompose support has been updated to v2.1.2. docker/buildx#2502, docker/buildx#24250.14.02024-04-18The full release notes for this release are available
  on GitHub.EnhancementsAdd support for --print=lint (experimental).
  docker/buildx#2404,
  docker/buildx#2406Fix JSON formatting for custom implementations of print sub-requests in frontends.
  docker/buildx#2374Provenance records are now set when building with --metadata-file.
  docker/buildx#2280Add Git authentication support for remote definitions.
  docker/buildx#2363New default-load driver option for the docker-container, remote, and kubernetes drivers to load build results to the Docker Engine image store by default.
  docker/buildx#2259Add requests.ephemeral-storage, limits.ephemeral-storage and schedulername options to the
  kubernetes driver.
  docker/buildx#2370,
  docker/buildx#2415Add indexof function for docker-bake.hcl files.
  docker/buildx#2384OpenTelemetry metrics for Buildx now measure durations of idle time, image exports, run operations, and image transfers for image source operations during build.
  docker/buildx#2316,
  docker/buildx#2317,
  docker/buildx#2323,
  docker/buildx#2271Build progress metrics to the OpenTelemetry endpoint associated with the desktop-linux context no longer requires Buildx in experimental mode (BUILDX_EXPERIMENTAL=1).
  docker/buildx#2344Bug fixesFix --load and --push incorrectly overriding outputs when used with multiple Bake file definitions.
  docker/buildx#2336Fix build
  ```