instruction: Create a Dockerfile for Nginx with production best practices
output: ```dockerfile
  from the configuration file.Calculate the fields to add or set. These are the fields present in
  the configuration file whose values don't match the live configuration.Here's an example. Suppose this is the configuration file for a Deployment object:application/update_deployment.yaml
  apiVersion: apps/v1
  kind: Deployment
  metadata:
   name: nginx-deployment
  spec:
   selector:
   matchLabels:
   app: nginx
   template:
   metadata:
   labels:
   app: nginx
   spec:
   containers:
   - name: nginx
   image: nginx:1.16.1 # update the image
   ports:
   - containerPort: 80
  Also, suppose this is the live configuration for the same Deployment object:apiVersion: apps/v1
  kind: Deployment
  metadata:
   annotations:
   # ...
   # note that the annotation does not contain replicas
   # because it was not updated through apply
   kubectl.kubernetes.io/last-applied-configuration: |
   {"apiVersion":"apps/v1","kind":"Deployment",
   "metadata":{"annotations":{},"name":"nginx-deployment","namespace":"default"},
   "spec":{"minReadySeconds":5,"selector":{"matchLabels":{"app":nginx}},"template":{"metadata":{"labels":{"app":"nginx"}},
   "spec":{"containers":[{"image":"nginx:1.14.2","name":"nginx",
   "ports":[{"containerPort":80}]}]}}}}
   # ...
  spec:
   replicas: 2 # written by scale
   # ...
   minReadySeconds: 5
   selector:
   matchLabels:
   # ...
   app: nginx
   template:
   metadata:
   # ...
   labels:
   app: nginx
   spec:
   containers:
   - image: nginx:1.14.2
   # ...
   name: nginx
   ports:
   - containerPort: 80
   # ...
  Here are the merge calculations that would be performed by kubectl apply:Calculate the fields to delete by reading values
  ```