instruction: Create a Dockerfile for multi-stage build with production best practices
output: ```dockerfile
  from the resulting image. You can view the values using docker inspect, and
  change them using docker run --env <key>=<value>.A stage inherits any environment variables that were set using ENV by its
  parent stage or any ancestor. Refer to the multi-stage builds section
  in the manual for more information.Environment variable persistence can cause unexpected side effects. For example,
  setting ENV DEBIAN_FRONTEND=noninteractive changes the behavior of apt-get,
  and may confuse users of your image.If an environment variable is only needed during build, and not in the final
  image, consider setting a value for a single command instead:
  
  RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y ...Or using ARG, which is not persisted in the final image:
  
  ARG DEBIAN_FRONTEND=noninteractive
  RUN apt-get update && apt-get install -y ...
  NoteAlternative syntaxThe ENV instruction also allows an alternative syntax ENV <key> <value>,
  omitting the =. For example:
  
  ENV MY_VAR my-valueThis syntax does not allow for multiple environment-variables to be set in a
  single ENV instruction, and can be confusing. For example, the following
  sets a single environment variable (ONE) with value "TWO= THREE=world":
  
  ENV ONE TWO= THREE=worldThe alternative syntax is supported for backward compatibility, but discouraged
  for the reasons outlined above, and may be removed in a future release.ADDADD has two forms.
  The latter form is required for paths containing whitespace.
  
  ADD [OPTIONS] <src> ... <dest>
  ADD [OPTIONS] ["<src>", ... "<dest>"]The available [OPTIONS] are:OptionMinimum Dockerfile version--keep-git-dir1.1--checksum1.6--chown--chmod1.2--link1.4--exclude1.7-labsThe ADD instruction copies new files or directories
  ```