instruction: Create a Dockerfile for Nginx with production best practices
output: ```dockerfile
  from within the
  source directory. The $(pwd) sub-command expands to the current working
  directory on Linux or macOS hosts.
  If you're on Windows, see also
  Path conversions on Windows.The following --mount and -v examples produce the same result. You can't
  run them both unless you remove the devtest container after running the first
  one.
  --mount
  
  -v
  
  $ docker run -d \
   -it \
   --name devtest \
   --mount type=bind,source="$(pwd)"/target,target=/app \
   nginx:latest
  
  $ docker run -d \
   -it \
   --name devtest \
   -v "$(pwd)"/target:/app \
   nginx:latest
  Use docker inspect devtest to verify that the bind mount was created
  correctly. Look for the Mounts section:
  
  "Mounts": [
   {
   "Type": "bind",
   "Source": "/tmp/source/target",
   "Destination": "/app",
   "Mode": "",
   "RW": true,
   "Propagation": "rprivate"
   }
  ],This shows that the mount is a bind mount, it shows the correct source and
  destination, it shows that the mount is read-write, and that the propagation is
  set to rprivate.Stop and remove the container:
  
  $ docker container rm -fv devtest
  Mount into a non-empty directory on the containerIf you bind-mount a directory into a non-empty directory on the container, the
  directory's existing contents are obscured by the bind mount. This can be
  beneficial, such as when you want to test a new version of your application
  without building a new image. However, it can also be surprising and this
  behavior differs
  ```