instruction: Create a Dockerfile for Node.js with production best practices
output: ```dockerfile
  from AccuWeather.Using WireMock with DockerThe official Docker image for WireMock provides a convenient way to deploy and manage WireMock instances. WireMock is available for various CPU architectures, including amd64, armv7, and armv8, ensuring compatibility with different devices and platforms. You can learn more about WireMock standalone on the WireMock docs site.PrerequisitesThe following prerequisites are required to follow along with this how-to guide:Docker DesktopLaunching WireMockLaunch a quick demo of WireMock by using the following steps:Clone the GitHub repository locally.
  
  $ git clone https://github.com/dockersamples/wiremock-node-docker
  Navigate to the wiremock-endpoint directory
  
  $ cd wiremock-node-docker/
  WireMock acts as the mock API that your backend will communicate with to retrieve data. The mock API responses have already been created for you in the mappings directory.Start the Compose stack by running the following command at the root of the cloned project directory
  
  $ docker compose up -d
  After a moment, the application will be up and running.
  You can check the logs by selecting the wiremock-node-docker container:
  Test the Mock API.
  
  $ curl http://localhost:8080/api/v1/getWeather\?city\=Bengaluru
  It will return the following canned response with mock data:
  
  {"city":"Bengaluru","temperature":27.1,"conditions":"Mostly cloudy","forecasts":[{"date":"2024-09-02T07:00:00+05:30","temperature":83,"conditions":"Partly sunny w/ t-storms"},{"date":"2024-09-03T07:00:00+05:30","temperature":83,"conditions":"Thunderstorms"},{"date":"2024-09-04T07:00:00+05:30","temperature":83,"conditions":"Intermittent clouds"},{"date":"2024-09-05T07:00:00+05:30","temperature":82,"conditions":"Dreary"},{"date":"2024-09-06T07:00:00+05:30","temperature":82,"conditions":"Dreary"}]}With WireMock, you define canned responses using mapping files.
  For this request, the mock data is defined in the JSON file at
  wiremock-endpoint/mappings/getWeather/getWeatherBengaluru.json.For more information about stubbing canned responses, refer to the
  WireMock documentation.Using WireMock in developmentNow that you have tried WireMock, letâs use it in development and testing. In this example, you will use a sample application that has a Node.js backend. This app stack has the following configuration:Local Development Environment: The context in which the Node.js backend and WireMock are running.Node.js Backend: Represents the backend application that handles HTTP requests.External AccuWeather API: The real API
  ```